1

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

我正在尝试使用点云库,据我所知,我已正确安装它,usr/lib但当我尝试执行简单教程时,包含不起作用:

#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 
4

1 回答 1

2

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

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

这告诉我它没有找到正确的包含路径。查看您的 QMake 文件,我看到您正在将包含路径设置为

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

在大多数 Linux/Unix(甚至 Windows)系统上,包含不在 subdirectorylib中,而是在 subdirectory 中include

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

于 2012-11-15T14:19:40.637 回答