为了账号安全,请及时绑定邮箱和手机立即绑定

链接上未定义的符号___gxx_personality_v0

链接上未定义的符号___gxx_personality_v0

C++ C
互换的青春 2019-11-04 09:45:27
我已经通过以下命令行构建了这个未定义的符号:$ gcc test.cppUndefined symbols:  "___gxx_personality_v0", referenced from:  etc...test.cpp很简单,应该可以正常运行。怎么了
查看完整描述

3 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

采用


g++ test.cpp

相反,因为这是c ++代码。


或者,如果您确实要使用gcc,请添加-lstdc++到命令行,如下所示:


gcc test.cpp -lstdc++

在每种情况下md5针对a.out产生的结果运行都会显示出相同的输出。


但是,是的,g++可能会使您的世界变得更简单。


查看完整回答
反对 回复 2019-11-04
?
波斯汪

TA贡献1811条经验 获得超4个赞

该.cpp扩展名导致gcc将您的文件编译为C ++文件。(请参阅GCC文档。)


尝试编译相同的文件,但将其重命名为具有.c扩展名:


mv test.cpp

gcc test.c

另外,您可以通过传递-x c给编译器来明确指定语言:


gcc -x c -c test.cpp -o test.o

如果您nm test.o在这些C语言版本上运行,您会注意到它___gxx_personality_v0没有以符号形式列出。

(并且,如果您对用生成的目标文件运行相同的命令,则会gcc -c test.cpp -o test.o显示___gxx_personality_v0符号。)


查看完整回答
反对 回复 2019-11-04
?
DIEA

TA贡献1820条经验 获得超2个赞

遇到相同的问题,但解决方案不同:


静态库中的C ++代码被链接起来,并由.m文件引用。将.m文件重命名为.mm可以解决此问题。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 1028 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信