Сборка со статическими Qt libs
От: Аноним  
Дата: 12.12.08 13:05
Оценка:
Доброго времени суток.
Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе.
В .../Qt/lib лежат и so-шки и a-шки.
У меня есть pro файл. Makefile получается qmake-ом.


21.01.10 12:42: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Сборка со статическими Qt libs
От: gryz  
Дата: 13.12.08 22:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Доброго времени суток.

А>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе.
А>В .../Qt/lib лежат и so-шки и a-шки.
А>У меня есть pro файл. Makefile получается qmake-ом.

Надо саму QT пересобрать как статическую
Re[2]: Сборка со статическими Qt libs
От: pva  
Дата: 14.12.08 13:40
Оценка:
Здравствуйте, gryz, Вы писали:

А>>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе.

А>>В .../Qt/lib лежат и so-шки и a-шки.
А>>У меня есть pro файл. Makefile получается qmake-ом.

G>Надо саму QT пересобрать как статическую

Так, вроде, а-шки — это и есть статика.
А что указать
CONFIG += static
не помогает?
newbie
qt static build
Re[3]: Сборка со статическими Qt libs
От: fdn721  
Дата: 15.12.08 07:44
Оценка:
Здравствуйте, 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

g++ -static -o .obj/main.o ............... -L/usr/lib -lssl -lcrypto -lQtGui -lQtNetwork -lQtCore -lpthread
/usr/bin/ld: cannot find -lQtGui
collect2: ld returned 1 exit status
Re: Сборка со статическими Qt libs
От: Wasilij  
Дата: 15.12.08 09:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Доброго времени суток.

А>Подскажите плз как собрать проект со статической Qt и динамическими libcrypto и libssl в линуксе.
А>В .../Qt/lib лежат и so-шки и a-шки.
А>У меня есть pro файл. Makefile получается qmake-ом.

Я конечно не по теме, но только FYI:
Как-то я пересобрал Qt со статической линковкой по Windows:

C:\Qt\4.4.1\mkspecs\win32-msvc2008\qmake.conf:

QMAKE_CFLAGS_RELEASE = -O2 -MD (-MT)
QMAKE_CFLAGS_DEBUG = -Zi -MDd (-MTd)

Но потому у меня Qt взглюкнула, а тех.поддержке сказали, что Qt не расчитана на статическую линковку.
Re[2]: Сборка со статическими Qt libs
От: K13 http://akvis.com
Дата: 15.12.08 12:18
Оценка:
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, но несовместимы!)
Re[3]: Сборка со статическими Qt libs
От: K13 http://akvis.com
Дата: 15.12.08 12:20
Оценка:
K13>
K13>nmake confclean
K13>configure -debug-and-release -static  # можно добавить -no-qt3support и т.д.
K13>nmake
K13>


K13>Вот при такой сборке можно указывать -MT / -MTd


UPDATE: править mkspecs/*/qmake.conf нужно до вызова configure
Re[4]: Сборка со статическими Qt libs
От: Wasilij  
Дата: 15.12.08 13:22
Оценка:
Здравствуйте, K13, Вы писали:


K13>>
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 (то бишь с ашками)?
Re[6]: Сборка со статическими Qt libs
От: Skorodum Россия  
Дата: 18.12.08 10:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Перефразирую вопрос.

А>На компьютере установлены две 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-файл строку:

LIBS += /usr/lib/qt4/lib/libQtNetwork.a /usr/lib/qt4/lib/libQtGui.a /usr/lib/qt4/lib/libQtCore.a -L/usr/lib -lpng -lSM -lICE -lpthread -lz -lrt -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lm -ldl -lssl -lcrypto

И всё получилось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.