Linux下c和cuda混合编译时nvcc选项

       在linux下将c和cuda进行混合编程时,我先将程序编译成可执行文件,发现可疑正常运行,但是重新建了一个c++ lib工程后,发现报错,报错信息为relocation R_X86_64_32against '.bss' can not bbe used when making a shared object; recompiler with -fPIC。解决方案是在用nvcc编译.cu文件时需要加上-fPIC选项。

       fPIC是编译动态库时的编译模式,用这种模式编译时可以对程序中有些地址重定位。如果不涉及到cuda,在qt文件中只需要配置CONFIG +=dll就可以用fPIC编译,如果涉及cuda,那么要在你的pro文件nvcc命令的.c之前加上一句 --compile-option "fPIC"就可以成功编译了。


参考博客:http://blog.csdn.net/u012816621/article/details/52334622

你可能感兴趣的:(Linux下c和cuda混合编译时nvcc选项)