2012-02-06 4 views
1

CUDA-NPPのサンプルコードサイトにあるboxFilterプログラムをコンパイルする方法を教えてもらえますか? 'make'はcommon_npplib.mkについてエラーを出します - common_npplib.mkは見つかりませんが、makefileに含まれています。再び、CUDA-NPPサンプルコード

g++ -I../../common/UtilNPP -I../../../shared/inc -I../../common/FreeImage -I/usr/global/cuda/4.0/cuda/include -L/usr/global/cuda/4.0/cuda/lib64 -L../../common/FreeImage/lib/linux -L../../../shared/lib -lnpp -lcudart -lUtilNPP_x86_64 -lfreeimage64 -o bf boxFilterNPP.cpp 

これはエラーにつながる: とにかく、私はこれを試してみました。 -lUtilNPP_x86_64および-lfreeimage64が見つかりません。 これらの2つを除いてコンパイルすると、npp::Image::Image()などの未定義参照のような多くのエラーが発生します。 助けてください、ありがとう!

答えて

2

あなたが見つけたエラーを再現しました。私はあなたが個々のboxFilter sampleをダウンロードしたと仮定します。

このアーカイブにはcommon_npplib.mkがありません。このエラーをCUDA SDK チームに報告し、修正します。一方で、個々のサンプルではなくSDK全体をダウンロードすれば、より良い運のコンパイルができると思います。

http://developer.nvidia.com/cuda-toolkit-41にアクセスし、「GPUコンピューティングSDKのダウンロード」を探して、お使いのOSに適したものをダウンロードしてください。私はあなたが直接boxFilterに行き、makeをタイプする前にサンプルをビルドする方法のreadmeの指示に従うことをお勧めします - それはユーティリティライブラリのいくつかを最初に構築することに依存するかもしれません。

1

私はあなたが言及したtarballをダウンロードしました。静的UtilNPP libを最初に構築しました。あなたはCUDA_INSTALL_PATH変数などを編集する必要があります、適切なディレクトリにあるdefines.mkのライン45-47:。

#ifdef cuda-install 
    CUDA_INSTALL_PATH := /usr/global/cuda/4.1/cuda 
#endif 

は、私は、書いた/ソースコードを含むディレクトリから次のビルドスクリプトを調達:

module load cuda/4.1 

shlib="-L/usr/global/cuda/4.1/cuda/lib64/ -lnpp" 
inc="-I../../common/UtilNPP -I../../common/FreeImage/include -I../../../shared/inc -I/usr/global/cuda/4.1/cuda/include/" 
stlib="../../common/lib/libUtilNPP_x86_64.a ../../common/FreeImage/lib/linux /libfreeimage64.a" 

nvcc $inc $stlib $shlib boxFilterNPP.cpp -o foo.x 

./foo.xが正常に実行されました。もちろん、あなたのインストールに合うようにcudaのインストールパスを変更する必要があります。モジュールシステムを使用しない場合は、LD_LIBRARY_PATHが正しいかどうかなどを確認してください。これが役に立ちます。

関連する問題