Программа, скомпилированная g++ работает, а gcc -- нет.
Поставил Федору 10 (64 битная Russian версия). До этого стояла 9 i386. Опыта работы с 64 битами до этого не было.
При компилировании программы (в частности Wesnoth) не ругаются, ничего не говорят, компилируются прекрасно, но при запуске segfault'ятся.
Наткнулся на очень странный глюк.
Есть программа (1.cpp):
---
#include <stdio.h>
main () {
int i = 0x12345678;
if (*(char *)&i == 0x12)
printf ("Big endian\n");
else if (*(char *)&i == 0x78)
printf ("Little endian\n");
}
--- Запускаю gcc 1.cpp, получаю:
/tmp/ccgJkgrG.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Если запускать g++ 1.cpp, всё работает на ура.
В чём проблема?
rpm -qa | grep gcc:
gcc-4.3.2-7.x86_64
gcc-c++-4.3.2-7.x86_64
gcc-gfortran-4.3.2-7.x86_64
libgcc-4.3.2-7.i386
libgcc-4.3.2-7.x86_64