包括在自制静态库的标头文件中使用的库

include libraries that are used in header file of self-made static library

本文关键字:文件 静态 包括      更新时间:2023-10-16

在一个静态库项目中,我有" myclass.h",就像以下类似:

class myClass{
.
.
#include "tensorflow/....h" //some tensorflow header file
.
.
using tensorflow::Tensor;
.
.
void CopyTensorImage2Cv(tensorflow::Tensor &Tensor);
.
.
}

}

我的" myclass.cpp"具有CopyTensorImage2Cv()的定义。

我想制作一个静态库,因此我成功地构建了项目并获得" myclass.lib"。

现在,我制作了一个带有源代码" test.cpp"的控制台应用程序来使用此lib文件。当我添加lib文件并将" myclass.h"复制到" test.cpp"并构建项目时,Visual Studio会增加一个无法理解#include "tensorflow/....h""using tensorflow::Tensor"

的错误

在这种情况下,我该怎么办,我想使用一个静态库,该库在其标题文件中使用另一个库?

我找到了解决方案,我使用了前向声明,以避免在标题文件中使用#include。这个对我有用。有关更多详细信息,您可以在标题文件中搜索前向声明。例如,在这种情况下,我使用以下代码:

namespace tensorflow{
      class Tensor;
};