Предыдущая бредятина | Следующая бредятина
Единственное предположение данного howto - у тебя стоит Gentoo. Это предположение заключается в использовании команды emerge и наличии пакета crossdev. Скорее всего, эти вещи легко заменяются аналогичными на дебианах/бубунтах и проч.
Так же моя хост-система собрана под x86-64, возможно, из-за этого конкретно у тебя что-то не будет работать. Любые добавления/исправления с радостью будут приняты.
Можно пойти попить кофе или наконец погулять с девушкой — qt собирается долго.
Качаем mingw: http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=240780,
Qt: ftp://ftp.trolltech.com/qt/source/qt-win-o pensource-4.3.3-mingw.exe (я использую версию 4.3.3, не факт, что на момент прочтения этого howto она будет еще актуальна).
Ставим MinGW — в
Я не пробовал ставить разные виндовые и линуховые версии Qt, скорее всего, необходимо, чтобы они были одинаковые.
В зависимости от
Можно выпить еще кофе. На моей машине (Core2Duo E6600@3.4) crossdev скрипел винтом минут 15-20.
Копируем папки
в
Получатся
соответственно.
Можно создать новые spec-файлы, можно править win32-g++. Я выбрал второй вариант. Открываем
Добавляем в район строчки 85-90 (блок
Приложение требует .dll-файлы Qt в своей директории (
Так же моя хост-система собрана под x86-64, возможно, из-за этого конкретно у тебя что-то не будет работать. Любые добавления/исправления с радостью будут приняты.
1. Ставим линуксовую версию Qt4.
emerge qtМожно пойти попить кофе или наконец погулять с девушкой — qt собирается долго.
2. Ставим виндовую версию Qt4 и MinGW.
Качаем mingw: http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=240780,
Qt: ftp://ftp.trolltech.com/qt/source/qt-win-o
wine qt-win-opensource-4.3.3-mingw.exeСтавим MinGW — в
~/mingw, Qt в ~/qtwin.Я не пробовал ставить разные виндовые и линуховые версии Qt, скорее всего, необходимо, чтобы они были одинаковые.
3. Компилируем toolchain.
emerge crossdevcrossdev -t i686-pc-mingw32 (под x86 может быть необходимым вместо этого использовать crossdev -t mingw32)В зависимости от
ACCEPT_KEYWORDS и от того, какую версию GCC/binutils/etc ты хочешь, может быть необходимым подредактировать /etc/portage/package.keywords (пакеты cross-i686-pc-mingw32/binutils и т.д.).Можно выпить еще кофе. На моей машине (Core2Duo E6600@3.4) crossdev скрипел винтом минут 15-20.
4. Копируем библиотеки Qt/Win.
Копируем папки
~/qtwin/lib~/qtwin/includeв
/usr/i686-pc-mingw32/QtПолучатся
/usr/i686-pc-mingw32/Qt/lib/usr/i686-pc-mingw32/Qt/includeсоответственно.
5. Правим спеки.
Можно создать новые spec-файлы, можно править win32-g++. Я выбрал второй вариант. Открываем
/usr/share/qt4/mkspecs/win32-g++/qmake.c onf и делаем следующие замены:QMAKE_CC = i686-pc-mingw32-gcc
QMAKE_CXX = i686-pc-mingw32-g++
QMAKE_INCDIR_QT = /usr/i686-pc-mingw32/Qt/include
QMAKE_LIBDIR_QT = /usr/i686-pc-mingw32/Qt/lib
QMAKE_LINK = i686-pc-mingw32-g++
QMAKE_COPY_DIR = cp -r
QMAKE_COPY = cp
QMAKE_DEL_FILE = rm
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uicДобавляем в район строчки 85-90 (блок
} else {)такую:QMAKE_DIR_SEP = /6. Компилируем приложение.
qmake -spec win32-g++ -win32 (или qmake -spec yourname, если в шаге 4 ты решил переименовывать спеки).make7. Запускаем приложение.
Приложение требует .dll-файлы Qt в своей директории (
QtCore4.dll, QtGui4.dll etc). Скопируем их из ~/qtwin/bin в директорию с приложением. Теперь - wine exename.exe, и все!- Где я:В сердце мая
- В ушах:Drowning Pool - Reminded


Comments
Но с этим еще разбираться нужно
По теме вопрос: Зачем ставить виндузовый MinGW? Или Вы его ставите из исходников?
П.С.
У меня crossdev -t i686-mingw32 валится при сборке w32api -ругается на "повторное определение". Никто не в курсе, как лечить?
К сожалению, не в курсе, я уже более года не сижу на gentoo.
>>Приложение требует .dll-файлы Qt в своей директории (QtCore4.dll,
>>QtGui4.dll etc). Скопируем их из ~/qtwin/bin в директорию с приложением.
>>Теперь - wine exename.exe, и все!
Если после компиляции кидаешь программку на чужой комп с ХР, тоже будит требовать эти библиотеки.
Вопрос - есть ли функция "вшивания" библиотек в exe'шник?
Не интересовался этим вопросом?