我正在尝试使用relocatable-device-code
旗帜。我有一个大型项目,使用小代码块更容易维护。
我能够编译项目。尝试运行它时,我遇到了严重的崩溃。使用调试器时:
(gdb) where
#0 0x0000000000000001 in ?? ()
#1 0x00007fffffffe39c in ?? ()
#2 0x0000000000000000 in ?? ()
我从未见过这样的堆栈跟踪!然后我减少了代码量,直到我得出一个奇点:main.cu
文件只包含
#include <iostream>
int main(void) {
std::cout << "hello, world" << std::endl;
return 0;
}
仍然失败。我正在使用以下标志来编译我的main.cu
文件。
nvcc -shared -rdc=true -arch=sm_20 -Xcompiler -fPIC -g -G
这些有意义吗?为什么这么简单的程序会出现分段错误?