LINUX.ORG.RU

Кросс-компиляция из ubuntu 11.04 x32 под windows7 x64


0

1

Мне необходимо собрать один проект на C++ под Windows 7 x64, как сказано в README файле: Compiling under Linux:

$ ./configure
$ make

Cross-Compiling under Linux, for Windows

$ ./configure  --host=i586-pc-mingw32
$ make

я установил MinGW под ubuntu (11.04, x32):

 
sudo apt-get install mingw32

но и скомпилил всё:

 
$ CC=i586-mingw32msvc-g++ ./configure --host=i586-pc-mingw32 && make
Всё нормально собралось, но только под windows 7 не работает. Выдаёт ошибку:

А под winXP нормально работает



Последнее исправление: g-71 (всего исправлений: 2)

но только под windows 7 не работает. Выдаёт ошибку

информативно, да.

алсо, что-то мне подсказывает, что i586-mingw32msvc-g++ выдает 32х битный код

seed_stil ★★
()
Ответ на: комментарий от seed_stil

А когда это нельзя было запустить 32-битный код на 64 битной машине?

Norgat ★★★★★
()
Ответ на: комментарий от g-71

В чем заключается невозможность установки?

rigiy ★★
()
Ответ на: комментарий от rigiy

64-битная ОС спокойно может запускать 32-битные программы, тут дело в чем-то другом. Подобное сообщение об ошибке появляется если попытаться запустить 16-битную программу под 64-битной системой, но к данному случаю это как-то неприменимо.

m0rph ★★★★★
()
Ответ на: комментарий от m0rph

Но не лучше ли под x64 собрать версию для x64?
К тому же не известно, что там за приложение.

rigiy ★★
()
Ответ на: комментарий от dib2

далеко не всегда

А в каких случаях не может? Процессоры Intel, работающие в 64-битном режиме умеют выполнять 32-битные инструкции. Тут если только строители ОС искусственно создадут какое препятсвие.

m0rph ★★★★★
()
Ответ на: комментарий от m0rph

строители ОС
Windows 7 x64

ну вы поняли.
в свое время сталкивался с этим, как только отхватил пару сообщений - долго не разбирался, сбилдил под x64 (и либы соотв. подложил), и все пошло норм.

dib2 ★★★★★
()
Ответ на: комментарий от m0rph

А в каких случаях не может?

Ну вот нет нужных для приложения 32-bit библиотек в системе, а корректно информировать пользователя винда так и не научилась.

andreyu ★★★★★
()

Под линукс есть такая замечательная программа (утилита?) ldd - проверяет зависимости исполняемого файла.
Ищи такое под винду
В помощь: (тема 06 року) Аналог ldd для Windows

ymuv ★★★★
()
Ответ на: комментарий от rigiy

Нет не улавливаю, винда спокойно гоняет 32ух битный софт.

tensai_cirno ★★★★★
()
Ответ на: комментарий от andreyu

Да нет, умеет. То что библиотеки не нашла говорит по-крайней мере.

tensai_cirno ★★★★★
()
Ответ на: комментарий от dib2

В нормальных системах есть нормальный мультилиб изкаропки.

tensai_cirno ★★★★★
()

CC=i586-mingw32msvc-g++ ./configure --host=i586-pc-mingw32 && make


CC=i586-mingw32msvc-g++ CFLAGS=-m64 CXXFLAGS=-m64 ./configure --host=i586-pc-mingw32 && make

хотя через WinSxS 32-битное всё равно должно запускаться

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.