Неопределенный символ ___gxx_personality_v0 по ссылке

Расширение .cpp заставляет gcc компилировать gcc ваш файл как файл C++. (См. GCC docs.)

Попробуйте gcc скомпилировать тот же файл, но gcc переименуйте его так, чтобы cpp он имел расширение .c:

mv test.cpp
gcc test.c

Кроме c++ того, вы можете явно указать cxx язык, передав -x c компилятору:

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

Если c вы запустите nm test.o в этих версиях cxx языка C, вы заметите, что cxx ___gxx_personality_v0 не указан как символ.
c++ если вы выполните ту же команду cpp для объектного файла, созданного g++ с помощью gcc -c test.cpp -o test.o, появится символ gcc ___gxx_personality_v0.)

c++

c

gcc

g++

2022-07-25T13:50:58+00:00