OpenVDB链接器错误:未解析的外部符号

时间:2017-09-27 11:35:15

标签: c++ linker openvdb

我希望在项目中使用OpenVDB库。该库已在使用\ MD的发行版本的Windows7 x64上成功编译(如https://github.com/rchoetzlein/win_openvdb中所述)。 OpenVDB_cookbook也可以成功编译和执行。如果我将自己的代码放在cookbook中,它也会成功编译并执行。

但是,

  • 如果我将库链接到现有项目,

  • 或者我在新项目中复制粘贴相同的代码(来自cookbook)并使用相同的cmakelists.txt,Find * .cmake文件和项目属性中的所有相同选项,而不是来自cookbook,

它抛出链接器错误'LNK2019:未解析的外部符号“void_cdecl openvdb :: v3_0_0 :: initialize(void)”在函数main'中引用

即使是最简单的表格代码:

#include <openvdb.h>
void main()
{
    openvdb::initialize();
}

抛出此链接器错误。

任何想法我做错了什么?我已经上了几天而且无法解决它。

所有库IlmBase,OpenEXR,glew,glfw,boost和OpenVDB都使用cmake成功链接,并存在于项目属性页面中。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通过添加dir \ src解决了这个问题。和dir \ src ..到属性下的附加包含目录 - &gt; C / C ++ - &gt;一般。其中dir是源和构建所在的目录。我不知道为什么我不得不添加它。