链接上的未定义符号___gxx_personality_v0
我已经得到这个未定义的符号build设与这个命令行:
$ gcc test.cpp Undefined symbols: "___gxx_personality_v0", referenced from: etc... test.cpp很简单,应该build立好。 什么是交易?
使用
 g++ test.cpp 
相反,因为这是c ++代码。
 或者,如果您真的想使用gcc ,请在命令行中添加-lstdc++ ,如下所示: 
 gcc test.cpp -lstdc++ 
 针对每种情况下生成的a.out运行md5显示它是相同的输出。 
 但是,是的, g++可能使你的世界变得更简单。 
 以防万一和我有同样的问题:文件扩展名应该是.c不是.C (gcc区分大小写)。 
  .cpp扩展.cpp导致gcc将您的文件编译为C ++文件。  (请参阅GCC文档 。) 
 尝试编译相同的文件,但将其重命名为.c扩展名: 
 mv test.cpp gcc test.c 
 或者,您可以通过将-xc传递给编译器来显式指定语言: 
 gcc -xc -c test.cpp -o test.o 
 如果您在这些C语言版本上运行nm test.o ,您会注意到___gxx_personality_v0未被列为符号。 
  (如果在用gcc -c test.cpp -o test.o生成的目标文件上运行相同的命令,则存在___gxx_personality_v0符号。) 
有同样的问题,但不同的解决scheme:
静态库中的C ++代码正在链接,并被.m文件引用。 将.m文件重命名为.mm修复了问题。