1

Nvidia OptiX SDK から提供されたサンプル プロジェクトを Qt-Creator でコンパイルしようとしています。

私は .pro ファイルを作成し、この help Compiling Optix with Qt Creator! を使用して自分のニーズに合わせて編集しました。

CUDA と OptiX の方向を編集したことを除いて、まったく同じ .pro ファイルを持っていますが、完全にコンパイルできません。

/home/Rembold/QTProjects/build-HelloOptix-Desktop-Debug/../HelloOptix/sample1.c:90: undefined reference to `sutilHandleError'
/home/Rembold/QTProjects/build-HelloOptix-Desktop-Debug/../HelloOptix/sample1.c:91: undefined reference to `sutilHandleError'

に由来する可能性がありNVIDIA-OptiX-SDK-X.X.X-linux64/SDK/sutilます。

しかし、行をコメントアウトすると、optix.CONFIG += no_link.cu ファイルから生成された .ptx ファイルがオブジェクト ファイルにリンクされます。したがって、.ptx ファイルはオブジェクト ファイルとして扱われ、Qt は構文エラーを表示します。

全体として、optix.CONFIG += no_link未定義の参照を提供し、この行がないと、コンパイラは .ptx ファイルをリンクしようとし、構文エラーを返します。

/usr/bin/ld:ptx/draw_color.cu.ptx: file format not recognized; treating as linker script
/usr/bin/ld:ptx/draw_color.cu.ptx:2: syntax error

リンクステップで特定のタイプのファイルだけを無視する方法がQtにありますか、それともどこかで間違いがありますか? どちらの場合も、ビルド ステップで正しい .ptx ファイル (指定された SDK プリコンパイル済みサンプルと比較して) と .o ファイルが生成されます。

前もって感謝します!

編集:私が自分で考え出したことを気にしないでください。エラーは、追加のライブラリをリンクするのに失敗したことをすでに教えてくれました。それが私が前進しなければならなかった理由です:

LIBS += -lcuda -lcudart -loptix -loptixu -lsutil -L/usr/local/cuda-6.5/lib64 -L/home/Remb/NVIDIA-OptiX-SDK-3.7.0-linux64/lib64
4

1 に答える 1

2

OptiX の sutils のライブラリを追加するのを忘れていました。LIBSに追加したものは次のとおりです。

LIBS += -lcuda -lcudart -loptix -loptixu -lsutil -L/usr/local/cuda-6.5/lib64 -L/home/Remb/NVIDIA-OptiX-SDK-3.7.0-linux64/lib64
于 2015-03-05T00:30:04.277 に答える