Доброго времени суток.
Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе.
В .../Qt/lib лежат и so-шки и a-шки.
У меня есть pro файл. Makefile получается qmake-ом.
21.01.10 12:42: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Здравствуйте, Аноним, Вы писали:
А>Доброго времени суток. А>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе. А>В .../Qt/lib лежат и so-шки и a-шки. А>У меня есть pro файл. Makefile получается qmake-ом.
Здравствуйте, gryz, Вы писали:
А>>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе. А>>В .../Qt/lib лежат и so-шки и a-шки. А>>У меня есть pro файл. Makefile получается qmake-ом.
G>Надо саму QT пересобрать как статическую
Так, вроде, а-шки — это и есть статика.
А что указать
CONFIG += static
не помогает?
Здравствуйте, pva, Вы писали:
pva>Здравствуйте, gryz, Вы писали:
А>>>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе. А>>>В .../Qt/lib лежат и so-шки и a-шки. А>>>У меня есть pro файл. Makefile получается qmake-ом.
G>>Надо саму QT пересобрать как статическую pva>Так, вроде, а-шки — это и есть статика. pva>А что указать pva>CONFIG += static pva>не помогает?
Не помогает. Нужно пересобрать QT с параметром -static.
Re[4]: Сборка со статическими Qt libs
От:
Аноним
Дата:
15.12.08 09:40
Оценка:
Здравствуйте, fdn721, Вы писали:
F>Не помогает. Нужно пересобрать QT с параметром -static.
Проблема в том что у меня нет доступа к Makefile.
Но я добавил в pro файл строку:
QMAKE_LFLAGS += -static
Здравствуйте, Аноним, Вы писали:
А>Доброго времени суток. А>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе. А>В .../Qt/lib лежат и so-шки и a-шки. А>У меня есть pro файл. Makefile получается qmake-ом.
Я конечно не по теме, но только FYI:
Как-то я пересобрал Qt со статической линковкой по Windows:
W>Я конечно не по теме, но только FYI: W>Как-то я пересобрал Qt со статической линковкой по Windows:
W>C:\Qt\4.4.1\mkspecs\win32-msvc2008\qmake.conf:
W>QMAKE_CFLAGS_RELEASE = -O2 -MD (-MT) W>QMAKE_CFLAGS_DEBUG = -Zi -MDd (-MTd)
W>Но потому у меня Qt взглюкнула, а тех.поддержке сказали, что Qt не расчитана на статическую линковку.
это было исправление рантайма на статик.
если сама Qt в DLL то так делать точно нельзя.
чтобы собрать Qt в статике, надо сделать
nmake confclean
configure -debug-and-release -static # можно добавить -no-qt3support и т.д.
nmake
Вот при такой сборке можно указывать -MT / -MTd
Только если нужны плагины (например, jpeg/tiff) то в своем проекте надо не забыть их добавить в .pro и через макрос зацепить в .cpp
У меня так работает все уже давно, начиная с 4.01.
И я не могу использовать -MD/-MDd, поскольку мой бинарник подгружается в чужой процесс с неизвестным мне рантаймом (например, есть VS2005 и VS2005 SP1 -- одинаковые имена dll, но несовместимы!)
K13>>nmake confclean
K13>>configure -debug-and-release -static # можно добавить -no-qt3support и т.д.
K13>>nmake
K13>>
K13>>Вот при такой сборке можно указывать -MT / -MTd
K13>UPDATE: править mkspecs/*/qmake.conf нужно до вызова configure
Да точно так — я тоже хотел избавится от поставки дополнительных dll.
Я пересобрал Qt, пересобрал проект, все было замечательно. Но в один прекрасный день я обнаружил, что ComboBox вылетает, если там начать искать при помощи клавиатуры. Например там был ComboBox со списком стран, так вот при нажатии 'r' вместо того чтобы выделить 'Russia' он вылетал. В support мне написали, что Qt можно собирать с опцией MT(d), но они эту опцию не тестируют, не поддерживают и не рекомендуют.
Re[5]: Сборка со статическими Qt libs
От:
Аноним
Дата:
16.12.08 13:50
Оценка:
Перефразирую вопрос.
На компьютере установлены две Qt — статическая и динамическая, тоесть в папке .../lib лежат и ашки, и сошки.
Как мне указать в pro файле чтоб проект собирался со статической qt (то бишь с ашками)?
Здравствуйте, Аноним, Вы писали:
А>Перефразирую вопрос. А>На компьютере установлены две Qt — статическая и динамическая, тоесть в папке .../lib лежат и ашки, и сошки. А>Как мне указать в pro файле чтоб проект собирался со статической qt (то бишь с ашками)?
Если ставишь 2 версии Qt, то обычно получаешь 2 папки, например, на Linux:
/usr/lib/Trolltech/Qt-4.3.3-static/
/usr/lib/Trolltech/Qt-4.3.3/
В Makefile прописываются lib-ы в зависимости от используемого qmake.
Собрать одновременно динамическую и статическую версию Qt не получится. Возможно, ты собирал Qt дважды, указывая один и тот же путь для установки. Я не пробовал так делать, но думаю, что новые lib-ы появились, а qmake перезаписался, и будет собирать только одну версию.
Re[7]: Сборка со статическими Qt libs
От:
Аноним
Дата:
19.12.08 11:06
Оценка:
Основной задачей было указать линковщику какие либы подхватывать (видимо сошки для него предпочтительнее) и обратить внимание на дополнительные либы для статики.
Добавил в pro-файл строку: