Linker 未定义的引用错误CUDA,GPUJPEG库

Linker 未定义的引用错误CUDA,GPUJPEG库,linker,cuda,shared-libraries,Linker,Cuda,Shared Libraries,我已成功安装此库。我的代码编译没有问题,但我得到了这个错误,我相信这是在链接过程中: suvamsh@vai:~/gpujpeg-lib/src$ nvcc test.cu /tmp/tmpxft_00002869_00000000-13_test.o: In function 'encoder()': tmpxft_00002869_00000000-1_test.cudafe1.cpp:(.text+0x23d): undefined reference to `gpujpeg_set_de

我已成功安装此库。我的代码编译没有问题,但我得到了这个错误,我相信这是在链接过程中:

suvamsh@vai:~/gpujpeg-lib/src$ nvcc test.cu
/tmp/tmpxft_00002869_00000000-13_test.o: In function 'encoder()':
tmpxft_00002869_00000000-1_test.cudafe1.cpp:(.text+0x23d): undefined reference to `gpujpeg_set_default_parameters(gpujpeg_parameters*)'
collect2: ld returned 1 exit status
我甚至将$LD_LIBRARY_路径设置为LIBRARY.so文件的位置。
任何帮助都将不胜感激

如@Talonmes所示


如果库位于“非标准”位置,则必须显式地为编译器指定库并提供安装它的路径

请尝试以下命令

$ nvcc test.cu -o test -L"path/to/GPUJPEGLibrary" -l"name_of_GPUJPEGLibrary"
请注意,如果.so文件的名称为libxyz.so,“name_of_GPUJPEGLibrary”应为“xyz”

例如,如果.so文件为/usr/local/lib/libgpujpeg.so,则cmdline应为

$ nvcc test.cu -o test -L"/usr/local/lib" -l"gpujpeg"

如果库位于“非标准”位置,则必须显式地为编译器指定库并提供安装它的路径
LD_LIBRARY_PATH
仅影响运行时行为,而不影响链接或编译行为。@talonmies我该怎么做?我尝试了上述命令,但仍然遇到相同的错误#include#include这是我如何包含头文件的。错误消息表明在源代码中包含头文件没有问题。“path/to/GPUJPEGLibrary”应该是.so文件的位置,而不是头文件的位置。例如,如果.so文件是/usr/local/lib/libgpujpeg.so,则cmdline应该是
$nvcc test.cu-o test-L”/usr/local/lib“-L“gpujpeg”
路径“/usr/local/lib”包含.so文件。但我也犯了同样的错误。出现此错误是否还有其他原因?如果使用x86_64系统,请尝试使用-L“/usr/local/lib64”