NVIDIAがリリースしたGPUコンピューティングSDKのcutil.hの関数にリンクしようとしています。
現時点では、この単純なコードをコンパイルしようとしています。
#include <iostream>
#include <cuda.h>
#include <cutil.h>
using namespace std;
int main(){
unsigned int time_total;
cutCreateTimer(&time_total);
return 0;
}
次のコマンドを使用します。
nvcc -I/home/sj755/NVIDIA_GPU_Computing_SDK/C/common/inc/ -L/home/sj755/NVIDIA_GPU_Computing_SDK/C/lib/libcutil_x86_64.a cutiltest.cu
次のエラーが発生する場合のみ:
/tmp/tmpxft_000077cc_00000000-13_cutiltest.o: In function `main':
tmpxft_000077cc_00000000-1_cutiltest.cudafe1.cpp:(.text+0x10): undefined reference to
`cutCreateTimer'
collect2: ld returned 1 exit status
フラグを追加した場合、ldも-lcutilを見つけることができません。リンクすることになっている静的ライブラリがありますが、何らかの理由でこれはうまくいきません。これが私が試したことです:
LD_LIBRARY_PATHに静的ライブラリへのパスが含まれるように.bashrcファイルを変更しました
##########<CULA>CULA_ROOT = / usr / local/culaをエクスポートします
CULA_INC_PATH = $ CULA_ROOT/includeをエクスポートします
CULA_BIN_PATH_32 = $ CULA_ROOT/binをエクスポートします
CULA_BIN_PATH_64 = $ CULA_ROOT/bin64をエクスポートします
CULA_LIB_PATH_32 = $ CULA_ROOT/libをエクスポートします
CULA_LIB_PATH_64 = $ CULA_ROOT/lib64をエクスポートします
########## <CUDA>export PATH = $ PATH:/ usr / local / cuda / bin
LD_LIBRARY_PATH =:/ usr / local / cuda/lib64をエクスポートします
LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:$CULA_LIB_PATH_64をエクスポートします
エクスポートLD_LIBRARY_PATH=$ LD_LIBRARY_PATH:/ usr / local / cuda / libnvvp /
CUDA_SDK_ROOT_DIR = / home / sj755 / NVIDIA_GPU_Computing_SDK/Cをエクスポートします
エクスポートLD_LIBRARY_PATH=$ LD_LIBRARY_PATH:$ CUDA_SDK_ROOT_DIR / lib
名前を変更
libcutil_x86_64.a
してみましたがlibcutil.a
、まだ何もありません。アーカイブを抽出し、共有オブジェクトファイルを作成し、それにリンクしてみました。
ar -x libcutil_x86_64.a
gcc -I / usr / include / GL / -L / usr / include / GL / -lglut -lGL -lGLU -lX11 -lXmu -lXi -lm -lpthread -shared * .cpp.o -o libcutil.so
nvcc -lcutil -I /home/sj755/NVIDIA_GPU_Computing_SDK/C/common/inc/ -L /home/sj755/NVIDIA_GPU_Computing_SDK/C/lib/libcutil.so cutiltest.cu
以下を取得するためだけに/usr/bin/ld: cannot find -lcutil
ここで忘れているのはどのステップですか?