The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как слинковать прогу статически?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как слинковать прогу статически?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(ok) on 11-Фев-05, 13:41  (MSK)
Указываю -static:
make
g++ -L/usr/local/qt/lib -lqt-mt -g3 -static massiv_int.o massiv_char.o ini.o sockets.o main.o wnd.moc.o wnd.o main_wnd.moc.o main_wnd.o functions.o -o main
/usr/lib/gcc-lib/i386-slackware-linux/3.2.2/../../../../i386-slackware-linux/bin/ld: cannot find -lqt-mt
collect2: ld returned 1 exit status
make: *** [main] Ошибка 1

Если же не статически, то всё нормально... :-(

Может конечно и ламерский вопрос, но всё же подскажите плз.! :-)

PS: Если убираю -lqt-mt - совсем начинает на qt-ые ругаться...

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как слинковать прогу статически?" 
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 11-Фев-05, 16:36  (MSK)
>Указываю -static:
> make
>g++ -L/usr/local/qt/lib -lqt-mt -g3 -static massiv_int.o massiv_char.o ini.o sockets.o main.o wnd.moc.o wnd.o
>main_wnd.moc.o main_wnd.o functions.o -o main
>/usr/lib/gcc-lib/i386-slackware-linux/3.2.2/../../../../i386-slackware-linux/bin/ld: cannot find -lqt-mt
>collect2: ld returned 1 exit status
>make: *** [main] Ошибка 1
>
>Если же не статически, то всё нормально... :-(
>
>Может конечно и ламерский вопрос, но всё же подскажите плз.! :-)
>
>PS: Если убираю -lqt-mt - совсем начинает на qt-ые ругаться...

есть подозрение, что никак ;-(
Qt поддерживает static таргет только на Вынь-платформах, для этого
ей надо доп. флаги в qmake.pro ставить..
можешь убедиться - в каталоге qt/lib отсутствует libqt-mt.a

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как слинковать прогу статически?" 
Сообщение от Serega_S emailИскать по авторуВ закладки(??) on 11-Фев-05, 17:48  (MSK)
>есть подозрение, что никак ;-(
>Qt поддерживает static таргет только на Вынь-платформах, для этого
>ей надо доп. флаги в qmake.pro ставить..
>можешь убедиться - в каталоге qt/lib отсутствует libqt-mt.a

И в правду там нет libqt-mt.a... :-(

Хм, но у меня опера статически слинкованная с qt стоит... Как-то же они её линковали под линь...
Глупость это какая-то... Уже, блин, жалею, что проект на qt начал, хоть и один только интерфейс на нём...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как слинковать прогу статически?" 
Сообщение от MaximKuznetsov Искать по авторуВ закладки on 11-Фев-05, 22:29  (MSK)
>>есть подозрение, что никак ;-(
>>Qt поддерживает static таргет только на Вынь-платформах, для этого
>>ей надо доп. флаги в qmake.pro ставить..
>>можешь убедиться - в каталоге qt/lib отсутствует libqt-mt.a
>
> И в правду там нет libqt-mt.a... :-(
>
>Хм, но у меня опера статически слинкованная с qt стоит... Как-то же
>они её линковали под линь...
>Глупость это какая-то... Уже, блин, жалею, что проект на qt начал, хоть
>и один только интерфейс на нём...
У них под линь - комерческая реализация с поддержкой производителя ;-)
так что вот таким хитрым образом и линковали ;-)
А вот жадеть что начал проект на qt не стоит - всё-же при всем богатстве выбора, наиболее удобная и продвинутая библиотека..Еще 4-ка выйдет с GPL под винь - вообче альтернативы отсутствуют


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как слинковать прогу статически?" 
Сообщение от gyn61 Искать по авторуВ закладки(ok) on 11-Фев-05, 23:19  (MSK)
Вставлю свои пять копеек. У меня не Slackware - у неня ALT Linux. Но я смотрю на qt3.spec и вижу:

%define static_nonthr 0
%define static_thread 0
%define shared_nonthr 0
%define shared_thread 1

Получается что qt3 можно собрать в разных вариантах, только майнтейнеры почему-то предлагают только один. Может попробывать откорректировать .spec и собрать статическую библиотеку qt?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как слинковать прогу статически?" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 14-Фев-05, 17:23  (MSK)
>Вставлю свои пять копеек. У меня не Slackware - у неня ALT
>Linux. Но я смотрю на qt3.spec и вижу:
>
>%define static_nonthr 0
>%define static_thread 0
>%define shared_nonthr 0
>%define shared_thread 1
>
>Получается что qt3 можно собрать в разных вариантах, только майнтейнеры почему-то предлагают
>только один. Может попробывать откорректировать .spec и собрать статическую библиотеку qt?
>

Собрать-то можно (на практике - не без патчей), но при этом отрубаются некоторые фичи вроде виджет-тем и SQL-модулей. И на мастдайной статической сборке то же самое.
Вообще-то это логично. Делать статические либы, использующие dynamic loading/linking в run-time, это оч гемморное занятие, и многие производители на это забивают. К примеру попробуйте собрать UNXI-ODBC в статике и слинковаться с ним, ничего хорошего (если не считать хорошим segfault ;) из этого не выйдет.
Я игрался со статической сборкой QT еще со времен QT2, при этом даже если не волнует исчезновение некоторых фич, нестабильные бинари какие-то выходят... Да и смысл? Динамический бинарь+шаред либа немногим больше по размеру, чем статический бинарь, зато куда стабильнее. Так что я просто кладу qt-mt.so/dll в один каталог с бинарем, и все ок.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру