Linker 链接器错误在库中找不到符号名称

Linker 链接器错误在库中找不到符号名称,linker,g++,Linker,G++,你好, 我正在编译,尝试链接程序时遇到问题 链接器错误为: g++ (GCC) 4.7.2 3.7.6-201.fc18.x86_64 #1 SMP Mon Feb 4 15:54:08 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux Fedora release 18 (Spherical Cow) 此对象文件是点。o正在尝试调用libstdc++中不存在的函数 当我尝试使用readelf检查符号名称是否存在时,我找不到它 /usr/bin/ld: poin

你好,

我正在编译,尝试链接程序时遇到问题

链接器错误为:

g++ (GCC) 4.7.2 
3.7.6-201.fc18.x86_64 #1 SMP Mon Feb 4 15:54:08 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Fedora release 18 (Spherical Cow)
此对象文件是
点。o
正在尝试调用libstdc++中不存在的函数

当我尝试使用readelf检查符号名称是否存在时,我找不到它

/usr/bin/ld: point.o: undefined reference to symbol '_Znwj@@GLIBCXX_3.4'
/usr/bin/ld: note: '_Znwj@@GLIBCXX_3.4' is defined in DSO /lib/libstdc++.so.6 so try adding it to the linker command line
/lib/libstdc++.so.6: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
这是因为point.o正在旧版本的libstdc++中查找一个符号,该符号可能已在更高版本中删除


非常感谢您的建议,

在我的例子中,我使用的是gcc而不是g++。它曾在'12年工作,但后来在'14年在另一台机器上构建时出现阻塞。gnu编译器确实已经改变了。就我而言,答案是补充

readelf --all libstdc++.so.6.0.17 | grep _Znwj@@GLIBCXX_3.4

如错误消息所示,位于链接行的末尾。HTH.

在我的例子中,我使用的是gcc而不是g++。它曾在'12年工作,但后来在'14年在另一台机器上构建时出现阻塞。gnu编译器确实已经改变了。就我而言,答案是补充

readelf --all libstdc++.so.6.0.17 | grep _Znwj@@GLIBCXX_3.4

如错误消息所示,位于链接行的末尾。HTH.

您能展示一下您的编译行吗?另外,您尝试调用哪些libstdc++中不存在的函数?你知道它不存在吗?我在代码中也有同样的问题,当现在移植到不同的Linux机器时,它将C和C++源编译成相同的可执行文件。我怀疑这与名称空间被屏蔽的方式有关。您能展示一下您的编译行吗?另外,您尝试调用哪些libstdc++中不存在的函数?你知道它不存在吗?我在代码中也有同样的问题,当现在移植到不同的Linux机器时,它将C和C++源编译成相同的可执行文件。我怀疑这与名称空间被屏蔽的方式有关。