Russian Qt Forum
Сентябрь 22, 2024, 20:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка под другую платформу  (Прочитано 4278 раз)
Self-Perfection
Гость
« : Апрель 24, 2008, 19:46 »

Понадобилось упаковать свой проект в deb пакеты под разные платформы. Сам сижу под 32битным линухом, так что бинарник для i386 получается традиционным
Код:
qmake && make
А вот как собрать под amd64? Гугленье ничего внятного не дало, но вроде как для этого достаточно указать 64битный spec. Пробую:
Код:
qmake -spec linux-g++-64 && make
Но на даже на самом тривиальном Hello world получаю:
Код:
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp
/usr/include/qt4/QtCore/qatomic_i386.h: In function ‘int q_atomic_test_and_set_ptr(volatile void*, void*, void*)’:
/usr/include/qt4/QtCore/qatomic_i386.h:73: error: cast from ‘void*’ to ‘int’ loses precision
/usr/include/qt4/QtCore/qatomic_i386.h:74: error: cast from ‘void*’ to ‘int’ loses precision
make: *** [main.o] Error 1

Ну субственно вопрос: как правильно собирать под другую платформу?
Записан
ритт
Гость
« Ответ #1 : Апрель 24, 2008, 20:17 »

гуглить на тему кросс-сборки

если вкратце, для кросс-сборки под линухом на хост-системе должны стоять линукс-хидерз, глибси, бинутилзы и гцц, собранные для таргет-системы (в данном случае для х86_64)
если требуется собрать только под х86 и х86_64, проще установить какой-нибудь дистрибутив с биарком,  чем собирать собственную среду (например, дэбиан этч - или что больше нравится)
естественно, у получившихся бинарников переносимость между дистрибутивами будет несколько ограниченной
Записан
Self-Perfection
Гость
« Ответ #2 : Апрель 25, 2008, 21:33 »

гуглить на тему кросс-сборки
Что-то не находится ничего внятного. В основном про win/lin кросс-компиляцию. Ну ещё какой-то apt-cross нашёлся. Буду копать дальше.

если требуется собрать только под х86 и х86_64, проще установить какой-нибудь дистрибутив с биарком,  чем собирать собственную среду (например, дэбиан этч - или что больше нравится)
Не знаю, что такое "биарк". Каково нетранслитерированное написание?

естественно, у получившихся бинарников переносимость между дистрибутивами будет несколько ограниченной
Хмммм... То есть ещё более ограниченная, чем "debian-based данной платформы"?
« Последнее редактирование: Апрель 25, 2008, 21:36 от Self-Perfection » Записан
ритт
Гость
« Ответ #3 : Апрель 26, 2008, 00:21 »

biarch
если говорить проще, кроме /lib, /usr/lib в системе ещё используются /lib64, /usr/lib64

например, если собираешь на дэбиан сид или ленни, большая вероятность, что на этче незапустится (зависит от разных причин)

попортам смотреть http://www.us.debian.org/ports/
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 21.