【发布时间】:2019-05-19 10:30:32
【问题描述】:
在一个静态库项目中,我有一个类似于下面的“myClass.h”:
class myClass{
.
.
#include "tensorflow/....h" //some tensorflow header file
.
.
using tensorflow::Tensor;
.
.
void CopyTensorImage2Cv(tensorflow::Tensor &Tensor);
.
.
}
}
我有定义为CopyTensorImage2Cv() 的“myClass.cpp”。
我想做一个静态库,所以我构建项目并成功获取“myClass.lib”。
现在,我用源代码“test.cpp”制作了一个控制台应用程序来使用这个 lib 文件。
当我添加 lib 文件并在“test.cpp”旁边复制“myClass.h”并构建项目时,Visual Studio 出现无法理解 #include "tensorflow/....h" 和 "using tensorflow::Tensor" 的错误
在这种情况下我该怎么办,我想使用一个静态库,它在其头文件中使用另一个库?
【问题讨论】:
-
.h 文件是否包含整个库?也许它取决于其他元素?包含路径是否正确?
-
是的,当我使用此代码时,所有代码都可以正常工作。我的问题是是否将此代码用作静态库。
-
包括模板?
-
建立一个只包含必要的头文件和myClass.cpp的项目,编译它,你会得到一个与'main()'相关的错误,但忽略它,你会得到myClass.o file(object文件)比在添加所有必要的文件(头文件 + myClass.h + main() 文件)后的下一个项目中,链接 myClass.o 文件并运行项目。这次 myClass.o 将充当静态库。
-
@Michael Chourdakis 是的
标签: c++ visual-studio visual-studio-2015 static-libraries