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

Include System Library with qmake on osx

本文关键字:qmake 系统库 包括带 osx      更新时间:2023-10-16

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

一切都在工作,但包含一个名为octomap的库。

我在系统中安装了(sudo make install)octomap

/usr/local/lib/liboctomap.a
/usr/local/lib/liboctomap.dylib

和标题

/usr/local/lib/include/octomap/

假设项目是这样组成的:

福.H

...
#include <octomap/OcTree.h>
octomap::OcTree tree(0.1);
...

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

这只是一个缺失的库,我还必须包含八元数学库

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

希望对某人有用。