将QTCreator中的库与QMake链接?

时间:2012-11-13 07:43:51

标签: qt-creator qmake

我是QTCreator的新用户,之前我使用过标准和QT库,但这是我尝试的第一个项目 添加一个外部库,我遇到了问题。

我正在尝试使用Point Cloud Library,据我所知,我在usr/lib中正确安装了它但是当我尝试this简单教程时,包含不会工作:

#include <boost/thread/thread.hpp>
#include <pcl/common/common_headers.h>
#include <pcl/features/normal_3d.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/console/parse.h>

给我这个错误:

/home/george/Documents/QT/EditorPCL-build-desktop-Qt_4_8_1_in_PATH__System__Release/../EditorPCL/editor.cpp:7: error: pcl/common/common_headers.h: No such file or directory

现在我通过GUI添加了库,所以从语法上来说我认为QMake文件是正确的,但我没有任何想法是什么错误。

以下是QMake文件的相关部分:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/      -lpcl_visualization
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/   -lpcl_visualizationd
else:symbian: LIBS += -lpcl_visualization
else:unix: LIBS += -L$$PWD/../../../../../usr/lib/ -lpcl_visualization

INCLUDEPATH += $$PWD/../../../../../usr/lib
DEPENDPATH += $$PWD/../../../../../usr/lib

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/release/ -lpcl_common
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/debug/ -lpcl_common
else:symbian: LIBS += -lpcl_common
else:unix: LIBS += -L$$PWD/../../../../../usr/lib/ -lpcl_common

INCLUDEPATH += $$PWD/../../../../../usr/lib
DEPENDPATH += $$PWD/../../../../../usr/lib

 win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/release/ -lpcl_apps
 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../usr/lib/debug/ -lpcl_apps
 else:symbian: LIBS += -lpcl_apps
 else:unix: LIBS += -L$$PWD/../../../../../usr/lib/ -lpcl_apps

 INCLUDEPATH += $$PWD/../../../../../usr/lib
 DEPENDPATH += $$PWD/../../../../../usr/lib 

1 个答案:

答案 0 :(得分:2)

编译时尝试查找标题时会抛出您的错误。

... error: pcl/common/common_headers.h: No such file or directory

这告诉我它找不到合适的包含路径。查看您的QMake文件,我发现您正在设置包含路径

INCLUDEPATH += $$PWD/../../../../../usr/lib

在大多数Linux / Unix(甚至Windows)系统上,包含不在子目录lib中,而是在子目录include中。

另外,我不喜欢你如何指定你的LIBPATH和INCLUDEPATH。如果PWD和文件的安装位置都不会移动,它们将起作用。更好的建议(至少对于Unix / Linux)是使用pkg-config实用程序。您可能需要阅读文章Using pkg-config with Qmake并查看它是否有帮助。