C++ libstdc++;。因此,6与cuda有关
今天我在链接我编译的cuda资料时遇到了一个问题 我有一个最新的debian测试w/2.6.32-3-amd64 我整天都在写代码。不时编译。 没有问题。但在一次小的代码更改后,我出现了以下错误:C++ libstdc++;。因此,6与cuda有关,c++,cuda,libstdc++,C++,Cuda,Libstdc++,今天我在链接我编译的cuda资料时遇到了一个问题 我有一个最新的debian测试w/2.6.32-3-amd64 我整天都在写代码。不时编译。 没有问题。但在一次小的代码更改后,我出现了以下错误: gcc -o pa CUDA.o histogram256.o histogram64.o main.o -lrt -lm -lcudart -I. -I/data/cuda/include -I/data/cuda/C/common/inc -L/data/cuda/lib64 /usr
gcc -o pa CUDA.o histogram256.o histogram64.o main.o -lrt -lm -lcudart -I. -I/data/cuda/include -I/data/cuda/C/common/inc -L/data/cuda/lib64
/usr/bin/ld: main.o: undefined reference to symbol 'std::basic_ifstream<char, std::char_traits<char> >::close()@@GLIBCXX_3.4'
/usr/bin/ld: note: 'std::basic_ifstream<char, std::char_traits<char> >::close()@@GLIBCXX_3.4' is defined in DSO /usr/lib64/libstdc++.so.6 so try adding it to the linker command line
/usr/lib64/libstdc++.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
希望有人能提出好的建议。添加
-L/usr/lib64 -lstdc++
我的makefile/commandlineparameters修复了它。您也可以使用g++而不是gcc。这将自动链接到stdc++而无需显式指定它
您确定您的环境没有任何变化吗?如果您在恢复到旧代码后仍然看到问题,那么您的代码不太可能导致这种情况。不幸的是,我非常确定。我唯一改变的是代码。现在是问的好时机,有没有其他人(有管理员权限)使用这台机器?无论如何,修复方法是使用-L/usr/lib64-lstdc++。看起来debian的更新可能已经完成了。我是唯一一个。谢谢你,这解决了我的问题。
-L/usr/lib64 -lstdc++