在使用RTM封装kinect代码时,编译遇到如下错误:
错误 11 error LNK2019: 无法解析的外部符号 __imp__oniInitialize,该符号在函数 “public: static enum openni::Status __cdecl openni::OpenNI::initialize(void)” (?initialize@OpenNI@openni@@SA?AW4Status@2@XZ) 中被引用 F:\All_Projects\RTM\KinectTest\build\src\kinecttest.obj kinecttestComp
后来发现是链接库没有配好导致。
在项目属性中,链接器下的输入选项:
打开附加依赖项,
把从父级或项目默认设置继承选项勾选上,因为不选择的话,编译器在编译时,不会从继承值中进行链接,所以会导致提示外部符号无法解析的错误。只有勾选上了,编译器才能从这里进行链接编译。
一般情况下,出现无法解析的外部符号都是因为lib库没有设置正确导致的,这时候只需检查链接库就可以了。