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) システムでは、includes は subdirectorylibではなく、 subdirectory にありincludeます。

さらに、LIBPATH と INCLUDEPATH の両方を指定した方法が気に入りません。PWDとファイルのインストール場所の両方が移動しない場合、それらは機能します。より良い提案 (少なくとも Unix/Linux の場合) は、pkg-config ユーティリティを使用することです。Qmake で pkg-config を使用するという記事を読んで、役立つかどうかを確認してください。

于 2012-11-15T14:19:40.637 に答える