我有一个工作的cmake项目,我需要转移到qmake。
一切正常,但包含了一个名为octomap的库。
我在系统中安装了(sudo make install)octomap
/usr/local/lib/liboctomap.a
/usr/local/lib/liboctomap.dylib
和
中的标题/usr/local/lib/include/octomap/
让我们说项目是如此组成:
foo.h中
...
#include <octomap/OcTree.h>
octomap::OcTree tree(0.1);
...
Foo.cpp中
...
#include <octomap/OcTree.h>
using namespace octree;
tree.doSomething();
...
foo.pro
...
unix|win32: LIBS += -loctomap
INCLUDEPATH += /usr/local/include/
...
由于
而在错误:未找到架构x86_64 的符号中编译结果Undefined symbols for architecture x86_64:
"octomap::OcTreeNode::createChild(unsigned int)", referenced from:
octomap::OccupancyOcTreeBase<octomap::OcTreeNode>::updateNodeRe...[a very long stack]
这应该意味着octomap库没有链接,我尝试使用pkgconfig并使用绝对路径在项目中添加它。它们都导致相同的错误,而如果我在cmake项目中使用它,它可以正常工作。
答案 0 :(得分:0)
这只是一个缺少的库,我还必须包含octomath lib
unix|win32: LIBS += -L/usr/local/lib/ -loctomap
unix|win32: LIBS += -L/usr/local/lib/ -loctomath
希望对某人有用。