1

これは簡単な問題だと思いますが、わかりません。Visual Studio では、プロジェクト プロパティ ダイアログを使用して、インクルード ディレクトリ、ライブラリ ディレクトリ、および依存関係 (OpenCL.lib) を追加します。

しかし、Qt Creator では外部ライブラリを追加できますが、ヘッダー ファイルの設定には役立たず、ヘッダー ファイルへの絶対パスの入力は機能しません。ヘッダーファイルをファイルに追加しても.pro機能していないようです。

だから私は外部ライブラリを追加します

ライブラリの追加ダイアログ

そして、次のヘッダー ファイルへのパスを追加してみますINCLUDEPATH

INCLUDEPATH += $$PWD/../../../../../../Program Files (x86)/AMD APP/lib/x86    
               $$PWD/../../../../../../Program Files (x86)/AMD APP/include

コードのスクリーンショット

今回は、次のエラーが表示されます。

エラーのスクリーンショット

しかし、私は以下のものも受け取りました:

"Can't open File.obj" // this happens if I just add the External Library and then click build
"No such file or directory 'C:/Program Files (x86)/AMD APP/include/CL/cl.h'" // but that file does exist.

解決

それを必要とする人にとって、最終的に機能した .pro ファイルは

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = clTest100
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

win32:CONFIG(release, debug|release): LIBS += -Lc:/opencl/lib/x86/ -lOpenCL
else:win32:CONFIG(debug, debug|release): LIBS += -Lc:/opencl/lib/x86/ -lOpenCL

INCLUDEPATH += c:/opencl/include
DEPENDPATH += c:/opencl/include
4

2 に答える 2

5

問題は単純です:スペース! スペースには、pro ファイル内の値を区切る空間的な意味があります。スペースを含むパスとファイル名を二重引用符で囲む必要があります。

もう 1 つの問題は、末尾のバック スラッシュがないことです。これは、Phlucious が書いたように、次の行にパラメーターを追加し続けていることを意味します。

トピック外:openCLを使用するすべてのプロジェクトが同じ設定を使用するため、prfファイル
を作成するのが適切なアプローチです。また、各マシンにはこのライブラリの場所が異なるため、各マシンには独自のバージョンのprfファイルが必要です。それ以外の場合は、コラボレーション (他の開発者とコードを共有する) で問題が発生します。prf ファイルを使用する場合は、プロジェクトに次のように追加して含めます。CONFIG += <prf file name>

したがって、prf ファイルの内容は次のようになります。

INCLUDEPATH += "c:/Program Files (x86)/AMD APP/include"
LIBS += -L"c:/Program Files (x86)/AMD APP/lib/x86" -lOpenCL


括弧にも同様の問題がある可能性があります。それも問題かもしれないので、私は自分のプロジェクトでそのような道に進むことはありません。
次の試行では、単一のスラッシュでスケープ括弧を試してください (相対パスを使用しないでください):

INCLUDEPATH += "c:/Program Files \(x86\)/AMD APP/include"
LIBS += -L"c:/Program Files \(x86\)/AMD APP/lib/x86" -lOpenCL

これがうまくいかない場合は、トリプルスラッシュでエスケープしてみてください(私はこの種のアプローチとのくだらないリンクが好きです):

INCLUDEPATH += "c:/Program Files \\\(x86\\\)/AMD APP/include"
LIBS += -L"c:/Program Files \\\(x86\\\)/AMD APP/lib/x86" -lOpenCL

おそらくより良い解決策は、これらのライブラリを、括弧やスペースを含まない、より便利なディレクトリにインストールすることです。

次のようなデバッグ目的で、pro ファイルに追加することもできます。

message(LIBS $$LIBS)
message(INCLUDEPATH $$INCLUDEPATH)
于 2013-07-08T08:36:24.473 に答える