0

我有一个工作的 cmake 项目,我需要转移到 qmake。

一切正常,但包含一个名为 octomap 的库。

我在系统中安装了( sudo make install )八进制图

/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 项目中使用它,它工作正常。

4

1 回答 1

0

它只是一个缺少的库,我还必须包含 octomath 库

unix|win32: LIBS += -L/usr/local/lib/ -loctomap
unix|win32: LIBS += -L/usr/local/lib/ -loctomath

希望对某人有用。

于 2013-09-11T16:03:08.793 回答