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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Одновременная сборка для нескольких компиляторов  (Прочитано 7005 раз)
niXman
Гость
« : Ноябрь 05, 2009, 00:21 »

Вот что нужно.

Есть исходники Кут. Лежат в "c:\qt"
Вот чего хотелось бы:
Запускать сборку одновременно для Mingw и MSVC. Для этого нужно указать результирующий каталог.
Собственно вопрос:
Как?

п.с.
посмотрел опции "configure.exe", там такого нет. какие варианты?


Пробовал сделать так:
1. Создаем каталоги для нужных компиляторов.
2. Запускаем две консоли.
3. В каждой из них устанавливаем значение QMAKESPEC равное нужному компилятору.
Цитировать
set QMAKESPEC=win32-g++
или
set QMAKESPEC=win32-msvc2008
4. В каждой консоле, переходим в свой каталог.
5. Запускаем "configure.exe" из исходного каталога с сорцами.

Все необходимые хидеры, либы, бинарники, скопировались. Этап конфигурации прошел успешно. Но при запуске "nmake", после некоторого времени, показалось это:
Цитировать
cl -c -FIqt_pch.h -Yuqt_pch.h -Fptmp\obj\debug_shared\QtCored_pch.pch -n
ologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 -w34100 -w34189 -GR -EHsc -DQT_SHARED -DQ
T_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_BUILD_CORE_LIB -D
QT_NO_USING_NAMESPACE -DQT_MAKEDLL -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_M
OC_COMPAT -D_USE_MATH_DEFINES -DHB_EXPORT=Q_CORE_EXPORT -DQT_DLL -I"..\..\includ
e" -I"..\..\include\QtCore" -I"tmp\rcc\debug_shared" -I"c:\qt\src\corelib\tmp" -
I"global" -I"c:\qt\src\3rdparty\zlib" -I"c:\qt\src\3rdparty\harfbuzz\src" -I"c:\
qt\src\3rdparty\md5" -I"c:\qt\src\3rdparty\md4" -I"..\..\include\ActiveQt" -I"tm
p\moc\debug_shared" -I"c:\qt\src\corelib" -I"." -I"c:\Qt\mkspecs\win32-msvc2008"
 -Fotmp\obj\debug_shared\ @C:\PROGRA~1\Temp\nmBC.tmp
qtextstream.cpp
c:\qt\src\corelib\io\qtextstream.cpp(3397) : fatal error C1083: Cannot open include file: 'qtextstream.moc': No such file or directory
qfilesystemwatcher.cpp
c:\qt\src\corelib\io\qfilesystemwatcher.cpp(631) : fatal error C1083: Cannot open include file: 'qfilesystemwatcher.moc': No such file or directory
Generating Code...
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

Какие идеи?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Ноябрь 05, 2009, 13:50 »

Эмм. Я так понял, ты пытаешься скомпилить одни и теже исходники (c:\qt) разными компиляторами одновременно, да? вопрос: а зачем так?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Ноябрь 05, 2009, 16:22 »

>>Для этого нужно указать результирующий каталог.
Просто, в том каталоге в котором командуешь configure.exe и make, в нём Qt и будет собиратся.

На Вин2к, а может и выше, есть проблема с этим, лучше собирать на том же диске что и исходники лежат. Иначе придётся ручками make-файлы править
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Ноябрь 05, 2009, 16:58 »

А может еще нужно и QMAKEDIR или DESTDIR устанавливать в консолях?
« Последнее редактирование: Ноябрь 05, 2009, 17:03 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Ноябрь 05, 2009, 17:14 »

нет, не нужно
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Ноябрь 05, 2009, 17:19 »

Пример, исходники располагаются в: X:\Qt_src

тогда Создаём каталог X:\Qt_build_1
Создаём окружение:
Код
DOS
set QTDIR=X:\Qt_build_1
set QMAKESPEC=win32-g++
set QTBIN=%QTDIR%\bin
set PATH=%QTBIN%;%SystemRoot%\System32 ...

В каталоге X:\Qt_build_1 командуем:
Код
DOS
X:\Qt_src\configure ...

П.С. Если Perl'а в области видимости нет, то Make-файл, вроде не создаётся, тогда после конфигурации командуем:
Код
DOS
X:\Qt_src\bin\qmake
« Последнее редактирование: Ноябрь 05, 2009, 17:21 от lit-uriy » Записан

Юра.
crackedmind
Гость
« Ответ #6 : Ноябрь 05, 2009, 22:45 »

Цитировать
П.С. Если Perl'а в области видимости нет, то Make-файл, вроде не создаётся, тогда после конфигурации командуем:
угу, только вот не makefile, а вообще конфигурация не пройдет...

отрывок из configure.exe
Код:
    if(sourceDir != buildDir) { //shadow builds!
        if (!findFile("perl") && !findFile("perl.exe")) {
            cout << "Error: Creating a shadow build of Qt requires" << endl
                 << "perl to be in the PATH environment";
            exit(0); // Exit cleanly for Ctrl+C
        }
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Ноябрь 06, 2009, 00:29 »

>>угу, только вот не makefile, а вообще конфигурация не пройдет...
Пройдет если качать qt-win-opensource-*
там каталог include уже заполнен и он, как я понял просто копируется. Во всяком случае о том, что нужен Perl, я узнал только когда стал использовать qt-all-opensource-*


П.С. я без Perl'а собирал только 4.4.*
« Последнее редактирование: Ноябрь 06, 2009, 00:32 от lit-uriy » Записан

Юра.
crackedmind
Гость
« Ответ #8 : Ноябрь 06, 2009, 01:40 »

Нет. Perl нужен только для сборки из гита, либо для так называемого shadow build, когда бинарники складываются в отдельную папку, а не в ту где сорцы. Код до глянь который я привел Улыбающийся
Записан
niXman
Гость
« Ответ #9 : Ноябрь 07, 2009, 00:44 »

Чтоб не дублировать посты, вот: http://forum.vingrad.ru/forum/topic-278984.html
Спасибо всем отозвавшимся.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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