2012-02-28 5 views
0

cutil.hファイルをインクルードしようとしています。私はそれを実行するために電源を入れたときに、私は2種類のエラーを取得しかしCUDA-cutil.h:そのようなファイルエラーはありません。makeファイルを試しました。

BINDIR = ./ # places compiled binary in current directory 
EXECUTABLE := test 

CCFILES := main.c 
CUFILES := cudaFunctions.cu 

# an ugly part - setting rootdir for CUDA SDK makefile 
# look for common.mk - I don't know where SDK installs it on Linux - 
# and change ROOTDIR accordingly 
ROOTDIR := /home/dan/NVIDIA_GPU_Computing_SDK/C/common 

include $(ROOTDIR)/../common/common.mk 

は、だから私は、次の makeファイルを試してみました。最初の権限であること:
ます。mkdir:ディレクトリ `/解除」を作成することはできません。
メイク:ターゲット obj/x86_64/release/cudaFunctions.cu.o', needed byを作るために***ノールールを許可は、だから私はsuコマンドの下に行き、再びそれを試してみましたが、得た

を否定しました。/'。やめる。

main.cファイルはもともとmain.cuファイルでした。私は例に従うように変更しましたが、同じエラーです。

なぜこのエラーが発生するのですか?

答えて

3

common.mkは、このように動作するようには意図されていません。CUDA SDKのサンプルとライブラリでのみ使用されます。

CUTILライブラリを使用したい場合は、代わりにcommonディレクトリのmakefileを使用してCUTILをビルドします。次に、CUTILヘッダーとライブラリをプロジェクトにコピーし、ライブラリにあるように#includeとリンクします。

CUTILはCUDA SDKの外部で使用するためのものではありませんが、SDKサンプルで使用される便利なライブラリです。 NVIDIAではサポートされていません。

+0

あなたはmakeファイルでCUTILをビルドしてから、ヘッダをコピーする必要があると言っていますか?私はヘッダーファイルを.hファイルとしてコピーしただけでリンクできたと思ったのですが? – Dan

+1

それをコピーするかどうかはあなた次第です。ヘッダをインクルードするために正しい '-I'パスをコンパイルに追加するだけで、ライブラリの場所に正しい' -L'パスを追加する必要があります。ライブラリをリンクする '-lcutil'を実行します。これはCUDA固有のものではなく、C/C++ライブラリと同じです。 – harrism

関連する問題