crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Настройка Qt для работы с разными компиляторами, а также статическая и динамическая версии одновременно
DIMEDROLL
  опции профиля:
сообщение 24.7.2009, 13:14
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Задача такая: нужно скомпилировать Qt последней версии(4.5.2) так, что бы ее библиотеки можно было использовать в msvc2003, msvc2005, msvc2008, win32-g++(mingw) тот который в QtCreator. При этом требуется возможность использовать статическую(-static) и динамимическую(-shared) версии одновременно, тоесть линковать либы как статически так и динамически.
Я компилировал как статически так и динамически, как быть если надо что бы они сосуществовали одновременно? Как максимально автоматизировать процесс изменения версии? Ведь наверняка нужно будет менять переменную среды QTDIR?!

Тоесть хотелось бы универсально настроить компьютер.

Попутные вопросы:
Вчера комплил полностью статическую версию Qt на msvc2005, оптимизирующий комплилятор студии ломается при компиляции библиотеки QtNetwork, пофиксил отключением оптимизации. Может кто сталкивался с этим, как решали?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.7.2009, 13:24
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(DIMEDROLL @ 24.7.2009, 17:14) *
что бы ее библиотеки можно было использовать в msvc2003, msvc2005, msvc2008, win32-g++(mingw)
несколько каталогов, в каждом своя сборка, я переключаю bat'никами. Т.е. есть несколько bat'ников, каждый по своему создаёт окружение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 25.7.2009, 13:00
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Получается что заголовочные файлы дублируются, тоесть одни и те же в каждой папке?! Насколько я понял у вас по две папки для каждого компилятора, в которых хранятся отдельно динамические и статические библиотеки.
Бросьте код хотя бы одного bat-файла для примера.
После выполниния bat-файла приходится выполнять выход-вход в системе, не так ли? Это если изменяются переменные среды.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.7.2009, 13:36
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(DIMEDROLL @ 25.7.2009, 14:00) *
После выполниния bat-файла приходится выполнять выход-вход в системе, не так ли? Это если изменяются переменные среды.

зачем вход выход?
если запустить командную строку и батник с изменением переменных среды то изменения действуют только на текущий сеанс консоли.
т.е. можно запустить 2 и более консоли и в них разными компиляторами собирать проекты.

вот мой простецкий батник для сборки 4.5.2
@cls
@echo off
@echo Setting up a MinGW/Qt only environment...
@echo -- QTDIR set to E:\Qt\4.5.2\bin
@echo -- PATH set to E:\Qt\4.5.2\bin\bin
@echo -- Adding E:\Qt\4.5.2\bin to PATH
@echo -- Adding %SystemRoot%\System32 to PATH
@echo -- QMAKESPEC set to win32-g++
@set QTDIR=E:\Qt\4.5.2
@set PATH=E:\Qt\4.5.2\bin;C:\MinGW\bin\;%SystemRoot%\System32
@set INCLUDE=E:\Qt\4.5.2\include;C:\MinGW\include
@set LIB=E:\Qt\4.5.2\lib;C:\MinGW\bin\lib
@set QMAKESPEC=win32-g++
@echo ---конец пакетоного файла---

далее
qmake -project [опции]
qmake [опции]
make debug или release

вообще можно сделать батник который будет примнимать в качестве аргумента командной строки версию. положить этот батник в директорию которая прописана в PATH и вызывать его из любого места командной строкив любом сеансе передавая ему к примеру версию библиотеки и компилятор.

а я просто этот таскаю в папки с проектами особо не заморачиваясь.

Сообщение отредактировал kwisp - 25.7.2009, 13:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.7.2009, 15:55
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(DIMEDROLL @ 25.7.2009, 17:00) *
После выполниния bat-файла приходится выполнять выход-вход в системе, не так ли?
Цитата(kwisp @ 25.7.2009, 17:36) *
то изменения действуют только на текущий сеанс консоли.
и на приложения запущенные из этой консоли, т.е. батник-то можно и закрыть после запуска некого приложения, но приложение будет работать в окружении заданном батником, пока это приложение не завершит работу.

Я так делаю, у меня есть каталог в котором лежат батники, можно получать доступ к этому каталогу через кнопку пуск.
А вот как выглядит один из батников:
set QTDIR=L:\Git\Qt_4.5.x
set MINGWDIR=F:\MinGW\3.4.5

set QMAKESPEC=win32-g++

set QTBIN=%QTDIR%\bin
set MINGWBIN=%MINGWDIR%\bin

::===================================
set ADDONPATH=F:\svn\bin;F:\Perl\bin
::F:\svn\bin;F:\cygwin\bin; 3.4.5_5.1.4 F:\GnuWin32\bin

::===================================
set PATH=%QTBIN%;%MINGWBIN%;%ADDONPATH%;%SystemRoot%\System32

cd /D %QTDIR%

start F:\totalcmd\TOTALCMD.EXE
т.е. я запускаю тотал командер, а из него всё, что захочу. Это всё, в том числе и тотал, будут работать в определённом окружении.

Цитата(DIMEDROLL @ 25.7.2009, 17:00) *
Насколько я понял у вас по две папки для каждого компилятора,
я пользуюсь только MinGW32, у меня просто море версий Qt:
H:\Qt\QtRun\TC_QT-4.3.5.bat
H:\Qt\QtRun\TC_QT-4.3.5_static.bat
H:\Qt\QtRun\TC_QT-4.4.3.bat
H:\Qt\QtRun\TC_QT-4.4.3_static.bat
H:\Qt\QtRun\TC_QT-4.5.2_std.bat
H:\Qt\QtRun\TC_QT-4.5-x.bat
H:\Qt\QtRun\TC_QT-4.x.bat
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 25.7.2009, 17:02
Сообщение #6


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


kwisp, а зачем ставить "@" в начале каждой строки, если уже вторая команда подавляет вывод на экран содержимого батника?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.7.2009, 1:04
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Kagami,
ты у меня спрашиваешь?

наверное так красивше:)
я просто в виндовых "скриптах" полный профан батник написал по мануалу винды:)
так что вот.



Цитата(Litkevich Yuriy @ 25.7.2009, 16:55) *
и на приложения запущенные из этой консоли,

естественно именно о приложениях и шла речь:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.12.2024, 1:01