Russian Qt Forum

Компиляторы и платформы => Компиляторы => Тема начата: Evgeniy N. Sharapov от Апрель 18, 2005, 20:21



Название: Статическая линковка библиотек к программе
Отправлено: Evgeniy N. Sharapov от Апрель 18, 2005, 20:21
Как с помощью gcc прилинковать либу к программе статически? То есть чтобы при переносе на другую машину со схожей архитектурой не возникло потребности в этой библиотеке. Искал волшебные ключики - не нашел.


Название: Статическая линковка библиотек к программе
Отправлено: Admin от Апрель 18, 2005, 21:02
если есть configure
то можно сказать так

./configure --disable-shared
и будет статическая либа


Название: Статическая линковка библиотек к программе
Отправлено: Evgeniy N. Sharapov от Апрель 18, 2005, 21:14
Попробовал. ldd все равно выводит либу от которой моя прога зависит. Может я не так понимаю вывод ldd. Я понимаю его так - ldd выводит список либ которые динамически линкуются к моему. вот вывод:
Код:
[sen@ppd89418 src]$ ldd test_use_boost
        libboost_date_time-gcc-mt-1_32.so.1.32.0 => /usr/local/lib/libboost_date_time-gcc-mt-1_32.so.1.32.0 (0x00d9a000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x007b5000)
        libm.so.6 => /lib/tls/libm.so.6 (0x0048f000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x007ab000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00371000)
        librt.so.1 => /lib/tls/librt.so.1 (0x00d2d000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x005c0000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00358000)
[sen@ppd89418 src]$

Ясен пень, что линковать статически всякие либы типа libstdc++ и ниже глупо. Т.к.  подразумевается, что они есть везде. а вот от boost зависимости хотелось бы избавится.


Название: Статическая линковка библиотек к программе
Отправлено: DmitriyDMA от Февраль 21, 2006, 13:46
Можно ключиком указать -static, только он прилинкует вообще все библиотеки и libc и pthread...
например:
g++ testdatareel.o -L/dreel430/unixlib -lgxcode -static -o app

А вообще если линкеру указывать статическую библиотеку то он ее прилинкует как статическую.
А еще, только что читал про библиотеки, мне вообще понравилось как написано:
Программирование под линукс:
http://www.firststeps.ru/linux/general1.html