Russian Qt Forum
Ноябрь 25, 2024, 08:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Статическая линковка библиотек к программе  (Прочитано 19215 раз)
Evgeniy N. Sharapov
Гость
« : Апрель 18, 2005, 20:21 »

Как с помощью gcc прилинковать либу к программе статически? То есть чтобы при переносе на другую машину со схожей архитектурой не возникло потребности в этой библиотеке. Искал волшебные ключики - не нашел.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #1 : Апрель 18, 2005, 21:02 »

если есть configure
то можно сказать так

./configure --disable-shared
и будет статическая либа
Записан
Evgeniy N. Sharapov
Гость
« Ответ #2 : Апрель 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
Гость
« Ответ #3 : Февраль 21, 2006, 13:46 »

Можно ключиком указать -static, только он прилинкует вообще все библиотеки и libc и pthread...
например:
g++ testdatareel.o -L/dreel430/unixlib -lgxcode -static -o app

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


Страница сгенерирована за 0.044 секунд. Запросов: 22.