5

これらのオブジェクト ファイルを次のコマンドでリンクしようとしています。

g++ NT_FFT_Decomp.o T_FFT_Decomp.o SNT_FFT_Comp.o ST_FFT_Comp.o VNT_FFT_Comp.o VT_FFT_Comp.o CUDA_FFT_Comp.o Globals.o main.o \
-L/media/wiso/Programs/Setups/CUDA/include -lcuda -lcudart -lpthread -o DevicesTest

/media/wiso/プログラム/セットアップ/CUDA

私のcudaインストールディレクトリです。私の LD_LIBRARY_PATH は次のようになります:

Irrelevant:/media/wiso/Programs/Setups/CUDA/lib64:/media/wiso/Programs/Setups/CUDA/lib:Irrelevant

コマンドにより、次のエラー メッセージが表示されます。

/usr/bin/ld: cannot find -lcuda
/usr/bin/ld: cannot find -lcudart

-lcuda と -lcudart を削除すると、cuda 関数への未定義参照エラーが生成されます。

どうすればこれを適切にリンクできますか??

4

2 に答える 2

7

コンパイラ スイッチを追加する必要があります。

-L/usr/local/cuda/lib64

または似たようなもので、 g++ に-lcuda-lcudartライブラリを見つける場所を伝えます。

あなたの場合、行はおそらく次のとおりです。

-L/media/wiso/Programs/Setups/CUDA/lib64

あなたが持っている既存のステートメントの代わりに。(またはincludeに変更)lib64lib

繰り返しLD_LIBRARY_PATHますが、コンパイルとリンクには何の関係もありません。

于 2013-05-13T22:54:30.907 に答える