我正在尝试使用适用于 Linux 的 CUDA 代码创建一个动态库。我正在尝试编译:
nvcc CudaLib.cu -shared -o CudaLib.so -arch=native
我收到错误:
创建共享对象时不能使用 move R_X86_64_32S for ".rodata";使用 -fPIC 选项重新编译
显然编译时需要-fPIC参数,但nvcc中不支持该参数。如果你写
nvcc CudaLib.cu -shared -fPIC -o CudaLib.so -arch=native
那么就会出现错误:
未知选项“-fPIC”
我找到了答案。要添加 -fPIC 标志,您需要使用 -Xcompiler=-fPIC。
所以编译行是