当前位置:  开发笔记 > 编程语言 > 正文

与cuda相关的libstdc ++.so.6的链接器问题

如何解决《与cuda相关的libstdc++.so.6的链接器问题》经验,为你挑选了2个好方法。

今天我遇到了链接我编译的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/bin/ld: main.o: undefined reference to symbol 'std::basic_ifstream >::close()@@GLIBCXX_3.4'
/usr/bin/ld: note: 'std::basic_ifstream >::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

我改回了代码,但错误仍然存​​在.

lib就是应该存在的地方.(/ usr/lib64链接到/ usr/lib)

ldd /usr/lib/libstdc++.so.6
    linux-vdso.so.1 =>  (0x00007fff31fff000)
    libm.so.6 => /lib/libm.so.6 (0x00007f15f625a000)
    libc.so.6 => /lib/libc.so.6 (0x00007f15f5ef9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f15f680d000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f15f5ce2000)

希望有人有一个很好的建议.



1> snippl..:

加入

-L/usr/lib64 -lstdc++

到我的makefile/commandlineparameters修复它.



2> bckohan..:

您也可以使用g ++而不是gcc.这将自动链接到stdc ++,而无需您明确指定它.

g ++和gcc有什么区别?

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有