为什么在这个libcufft_static示例中出现"undefined reference to `__cudaRegisterLinkedBinary_60_....`"错误?
Why am I getting "undefined reference to `__cudaRegisterLinkedBinary_60_....`" errors in this libcufft_static example?
我在Ubuntu 16.04上使用CUDA 7.5 SDK,通过nvidia-cuda-toolkit
包安装。我正在尝试使用cuFFT的回调功能编译一个简单的测试程序;这个例子的源代码可以在GitHub上找到。
按照使用回调特性编译的说明,我将源代码编译为可重定位的设备代码并链接到libcufft_static.a
:
nvcc -ccbin g++ -dc -m64 -o cufft_callbacks.o -c cufft_callbacks.cu
nvcc -ccbin g++ -m64 -o cufft_callbacks cufft_callbacks.o -lcufft_static -lculibos
在上面的序列中,最后一个命令失败并出现一系列错误,这些错误都类似于下面的:
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libcufft_static.a(set_callback.o): In function `__sti____cudaRegisterAll_47_tmpxft_00003a6a_00000000_7_set_callback_cpp1_ii_b7e0d86d()':
tmpxft_00003a6a_00000000-4_set_callback.cudafe1.cpp:(.text+0x6fd): undefined reference to `__cudaRegisterLinkedBinary_47_tmpxft_00003a6a_00000000_7_set_callback_cpp1_ii_b7e0d86d'
它抱怨许多缺失的符号,都以__cudaRegisterLinkedBinary_
开头。我不认为我做错了什么,因为相同的命令序列在我手头的CentOS 7机器上正常工作。
是否有可能我的SDK配置错误?我在SO和其他地方看到的所有提到的类似问题都是未能执行上述单独的编译步骤;我不认为这里是这样的
我能够通过升级到CUDA 8.0 RC解决这个问题,@RobertCrovella在上面的评论中建议。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- Libcurl c++ "undefined reference to" (Windows/MinGW/g++)
- 尝试使用 extern "C" 调用 C 中的C++方法,得到"undefined reference to"对象的链接器错误
- build error : undefined reference to `yyFlexLexer::yyFlexLex
- 使用 G++ 编译时"Undefined Refrence to Foo"
- 声明和定义函数静态会产生"undefined reference to function_name()"
- C++ : "undefined reference to"可能是因为CMake文件
- AppData\Local\Temp\cc59LXDc.o:test1.cpp: undefined reference to 'constructNewObjectOfClass
- YAML-cpp 编译错误:"undefined reference to YAML::LoadFile"
- 添加 cpp11 插件时出现错误消息"Undefined reference to boost (...)"
- 获得"undefined reference to"
- 如何修复 cpp 中的"undefined reference to"错误,当调用刚性车身树中的函数时,如 doKinematics、CreateKinematicCache
- 如何在arduino ide中修复"undefined reference to:",尝试使用googletest
- android c++ undefined reference to eglGetCurrentContext
- 将单独的头文件和类定义文件链接到主函数文件 - G++ 返回重载"undefined reference to"构造函数