2

リンカーにエラーがあります

1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaMalloc@8
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaFree@4

ここに同様の質問が追加されているのを見ました: 初心者のCUDAプログラムの未解決の外部シンボル しかし、この情報はすでにリンカーに追加されています。

では、どこに問題があるのでしょうか? Visual Studio 2010 Premium と CUDA SDK 5.0 および Nsight 3.0 for VS を使用しています

ソースコードはこちら: http://pastebin.com/DfdfSfWd (これは、CUDA 5.0 用に作成された新しいプロジェクトで Visual Studio によって生成された例です)

[編集]

リンカの設定

構成プロパティ->リンカー->一般->追加のライブラリディレクトリ:

$(CudaToolkitLibDir) $(CUDA_LIB_PATH) $(CUDA_PATH)\lib\$(プラットフォーム名)

構成プロパティ->リンカー->入力->追加の依存関係

cuda.lib;cudart.lib; そして他のライブラリ..

しかし、プロパティでは、CUDAには独自のLinder、「CUDA Linker」があり、設定されていないことがわかります

追加のライブラリ ディレクトリ

追加の依存関係

したがって、このプロパティを設定しましたが、変更はありません。リンカーにはまだ問題があります。

[編集]

わかりました、エラーは私が変更したときです

構成プロパティ -> CUDA C/C++ -> デバイス -> コード生成

から

compute_10,sm_10

compute_20,sm_20

CUDA C/C++ 用のフラグ -dc を追加します。

4

1 に答える 1

2

OK、個別のコンパイルとリンク用にプロジェクトを設定する方法を見つけました。以下に、それが機能するプロジェクトの例を 示します。

于 2012-12-16T19:42:47.890 に答える