Сборка wxWidgets под mingw32 (кросс-компиляция под gentoo)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

dimbor
Ведущий рубрики
Сообщения: 1572
Статус: Подвинутый участник

Сборка wxWidgets под mingw32

Сообщение dimbor »

Среда установлена посредством crossdev i586-mingw32. Тестовый пример собирается, под вайном и виндой работает.
wxWidgets взят www.wxwidgets.org/downloads, сборка:

Код: Выделить всё

./configure --prefix=/usr/i586-mingw32 --host=i586-mingw32 --with-msw --disable-compat26 --disable-compat24 --disable-shared --enable-unicode --disable-debug --with-zlib=builtin
make


Оно компилируется, но линковка не проходит:

Код: Выделить всё

...
/root/cross/src/wxWidgets-2.8.12/lib/libwx_baseu-2.8-i586-mingw32.a(baselib_textfile.o):textfile.cpp:(.text$_ZN10wxTextFileD0Ev[wxTextFile::~wxTextFile()]+0xc): undefined reference to `___gxx_personality_sj0'
/root/cross/src/wxWidgets-2.8.12/lib/libwx_baseu-2.8-i586-mingw32.a(baselib_textfile.o):textfile.cpp:(.text$_ZN10wxTextFileD0Ev[wxTextFile::~wxTextFile()]+0x63): undefined reference to `operator delete(void*)'
/root/cross/src/wxWidgets-2.8.12/lib/libwx_baseu-2.8-i586-mingw32.a(baselib_textfile.o):textfile.cpp:(.rdata$_ZTI10wxTextFile[typeinfo for wxTextFile]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
collect2: ld returned 1 exit status
make[1]: *** [wxrc.exe] Error 1
make: *** [wxrc] Error 2


Пробовал непосредственно добавлять LDFLAGS=-L/usr/lib/gcc/i586-mingw32/4.5.3 - без результата.
Тут, как я понял, советуют править код. Меж тем, несколько ранее под Альтлинуксом wxWidgets кросскомпилировался без вмешательств. Правда там все было x32.

Подскажите пожалуйста направление дальнейшего рытья.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5435
ОС: Gentoo

Re: Сборка wxWidgets под mingw32

Сообщение /dev/random »

dimbor писал(а):
10.11.2011 15:04
Оно компилируется, но линковка не проходит:

Приложите полный лог (аттачем или через какой-нибудь pastebin, не включайте его прямо в текст сообщения).
Такое ощущение, что код на c++ собирается через gcc вместо g++.

dimbor писал(а):
10.11.2011 15:04
Правда там все было x32.

x32 - это экспериментальный ABI, сочетающий 32-битные указатели c "наворотами" 64-битных процессоров (например, большим количеством регистров). Полагаю, вы всё-таки имели в виду x86, он же x86-32, он же ia32.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1572
Статус: Подвинутый участник

Re: Сборка wxWidgets под mingw32

Сообщение dimbor »

/dev/random писал(а):
10.11.2011 21:25
x32 - это экспериментальный ABI, сочетающий 32-битные указатели c "наворотами" 64-битных процессоров (например, большим количеством регистров). Полагаю, вы всё-таки имели в виду x86, он же x86-32, он же ia32.

Упс, точно, мой косяк. Но зато мой кругозор расширили.

Лог цепляю, заодно config.log, ну и корневой Makefile для кучи.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
zhekas
Сообщения: 60
ОС: Gentoo

Re: Сборка wxWidgets под mingw32

Сообщение zhekas »

у меня на gcc-4.5.3 приблизительно такие же ошибки выдавались на безобидном cpp исходнике. Откатился на 4.4.5 всё стало работать как надо.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1572
Статус: Подвинутый участник

Re: Сборка wxWidgets под mingw32

Сообщение dimbor »

Да, crossdev --gcc 4.4.5 -t i586-mingw32 помогло - собралось. Спасибо за тривиальный способ решения.
А полную разгадку данной заморочки, думаю, надо оставить людям, занимающимся производством средств производства. Этим, как их - гегемонам. ;)
Спасибо сказали: