在osx上包含带有qmake的系统库

时间:2013-09-11 14:10:35

标签: c++ macos shared-libraries qmake

我有一个工作的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项目中使用它,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

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

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

希望对某人有用。