我已经通过以下命令行构建了这个未定义的符号:$ 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++可能会使您的世界变得更简单。
波斯汪
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符号。)
- 3 回答
- 0 关注
- 1028 浏览
添加回答
举报
0/150
提交
取消