Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] Static link


Автор: Greeen 17.11.2007, 17:09
Добрый вечер. Имеется программа, написаная с использованием QT4 (конкретнее только QtGui модуля). Имеется машина на которой QT 3.3.8. Возможности пересборки на целевой машине получается нет. Как заставить линковать все нужные библиотеки статически?

Автор: JackYF 18.11.2007, 02:29
Цитата(Greeen @  17.11.2007,  17:09 Найти цитируемый пост)
Возможности пересборки на целевой машине получается нет.

зачем пересборка?  smile поставить qt4-библиотеки религия не позволяет?

Цитата(Greeen @  17.11.2007,  17:09 Найти цитируемый пост)
Как заставить линковать все нужные библиотеки статически?

при линковке твоего проекта -static указать.
+ линковать со статически собранной qt4.

Автор: tmp_Greeen 18.11.2007, 11:17
JackYF, я просто в Линукс не имею большого опыта работы. Вот если проводить аналогию с виндой, то там как бы либо слинковал статически, либо положил нужные дллки в каталог в прогой и будь здоров. А тут что посоветуешь? Все же статик линк или таскать либы с тобой? Если второе, то как узнать какие именно нужны и куда их закидывать (в lib или в каталог проги покатит)?

Добавлено через 26 секунд
http://forum.vingrad.ru/forum/topic-182439.html

Автор: MAKCim 18.11.2007, 11:33
tmp_Greeen, 
1. функции, которые обладают универсальностью и не завязаны на конкретное приложения, лучше оформлять в виде библиотеки
2. если функции большие и есть вероятность, что многие из них просто не будут вызваны (условия, проверки и т. д), то опять таки лучше использовать библиотеки (по крайней мере сэкономишь на размере исполняемого файла)
3. если исполняемый файл явлется неизменяемым (или мало изменяемым) интерфейсом к основной функциональности, которая представлена набором функций, то их лучше оформлять в виде библиотеки (так мы получим логическое разделение на функционал и представление с возможностью неззависимой их модификации)
в остальном можно использовать статическую компоновку
Цитата(tmp_Greeen @  18.11.2007,  11:17 Найти цитируемый пост)
Если второе, то как узнать какие именно нужны и куда их закидывать (в lib или в каталог проги покатит)?

хорошим тоном считается использование каталога /usr/local/lib
либо /home/<user>/lib
тут правило такое: если библиотеку могут использовать другие библиотеки или приложения, то помещаем ее в /usr/lib, иначе - см. выше
/lib использовать не рекомендуется, поскольку там хранятся системные библиотеки

Автор: tmp_Greeen 18.11.2007, 11:49
MAKCim, спасибо. То есть как я понял мне нужно qt4 либы закинуть в /usr/local/lib
Наверное это логично было бы сделать на make install. Или я не прав?

Автор: MAKCim 18.11.2007, 12:14
tmp_Greeen, 
да

Автор: tmp_Greeen 18.11.2007, 12:16
JackYF, MAKCim, спасибо  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)