1
我正在阅读一本C++书,其中指出链接器通常会传递重叠名称而不是原始名称。所以,我正在试图看看会出现什么样的重叠名称。因此,我创建了一个名为Test的类,它只包含函数签名并将其保存到名为name_mangling.cpp的文件中。打印C++名字mangling
然后在主方法中,我调用这些函数。我首先编译该文件以.O然后试图与命令如
g++ -o name_mangling name_mangling.o
我希望看到错位的名称链接,但克++印刷实际名称如
undefined reference to `Test::Test(char const*)'
但在另当我尝试链接到诸如.so这样的共享对象时,我看到了一些手工编制的名称。为什么g ++在.so的情况下打印损坏的名称,而不是上述情况?
如果你只是想看看这些被破坏的名字,只要说'nm name_mangling.o',它应该在对象文件中列出符号。 – 2012-08-05 17:51:19
非常好,谢谢。 – Jimm 2012-08-05 17:54:53