Rozszerzenie .cpp
powoduje, że gcc
kompiluje twój plik jako plik C++. (Patrz GCC docs.)
Spróbuj kompilacji tego samego pliku, ale zmień go mieć .c
rozszerzenia:
mv test.cpp
gcc test.c
Alternatywnie, można jednoznacznie określić język przekazując -x c
do kompilatora:
gcc -x c -c test.cpp -o test.o
Jeśli prowadzisz nm test.o
na tych wersjach C-językowych, można zauważyć, że ___gxx_personality_v0
nie jest wymieniony jako symbol.
(A jeśli uruchomić tego samego polecenia na pliku obiektowego generowanego z gcc -c test.cpp -o test.o
The ___gxx_personality_v0
symbol jest obecny).
czy możemy zobaczyć kod, jeśli nie jest zbyt długi? – jjnguy