我已經通過以下命令行構建了這個未定義的符號:$ 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 關注
- 1077 瀏覽
添加回答
舉報
0/150
提交
取消