我是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
答案 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并查看它是否有帮助。