Форум программистов, компьютерный форум CyberForum.ru

GCC как часть библиотек линковать статически, а часть динамически? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 1, средняя оценка - 5.00
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.12.2013, 00:31     GCC как часть библиотек линковать статически, а часть динамически? #1
Просто пока лень Qt пересобирать, чтобы возыметь статик-либы. Нужно Qt линковать динамически, а boost, gmp, ... статически.
Возможно ли такое? Вроди бы встречал когда-то такую комбинацию опций в GCC...

Bash
1
2
z@x:~$ cc --version
cc (GCC) 4.8.2 20131219 (prerelease)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 00:31     GCC как часть библиотек линковать статически, а часть динамически?
Посмотрите здесь:

Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) C++
C++ как вывести часть массива?
C++ как исправить часть в майне?
Как работает эта часть кода? C++
Динамически или статически C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
30.12.2013, 01:07
  #2

Не по теме:

Цитата Сообщение от gromo Посмотреть сообщение
Просто пока лень Qt пересобирать, чтобы возыметь статик-либы.
Не возымешь статик либу сегодня - завтра она возымет тебя!

gromo
30.12.2013, 03:50  [ТС]
  #3

Не по теме:

Цитата Сообщение от xtorne21st Посмотреть сообщение
Не возымешь статик либу сегодня - завтра она возымет тебя!

castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
30.12.2013, 09:18     GCC как часть библиотек линковать статически, а часть динамически? #4
Динамические библиотеки имеют двойное расширение .dll.a
Т.е. чтобы подключить библиотеку динамически, надо указывать -lmylib.dll
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.12.2013, 09:54     GCC как часть библиотек линковать статически, а часть динамически? #5
gromo, Через -whole-archive вообщем-то. Или через rpath. bstatic/bshared
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
30.12.2013, 11:26     GCC как часть библиотек линковать статически, а часть динамически? #6
Ну а если подключать бустовские либы ...-mt-s-..., ...-mt-sd-..., - разве они не линкуются статически?
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
30.12.2013, 12:37     GCC как часть библиотек линковать статически, а часть динамически? #7
Буква s в имени библиотеки говорит о том что она то статическая.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.12.2013, 17:01  [ТС]     GCC как часть библиотек линковать статически, а часть динамически? #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Или через rpath. bstatic/bshared
Спасибо, помогло такое:
Bash
1
-Wl,-Bstatic,-lgmp,-lgmpxx,-lboost_regex,-Bdynamic [тут уже сами подставлялись qt-шные динамич. либы]
Ранее я добавлял опции линковщику через QMAKE_LFLAGS, а qmake [цензура] выставлял их в командной строке ДО укзазания объектных файлов. В итоге линкер игнорировал все мои просьбы линковать статически (да и вообще линковать).
Цитата Сообщение от DiffEreD Посмотреть сообщение
Ну а если подключать бустовские либы ...-mt-s-..., ...-mt-sd-..., - разве они не линкуются статически?
Хмм... не совсем понимаю о чем вы.
Цитата Сообщение от castaway Посмотреть сообщение
Буква s в имени библиотеки говорит о том что она то статическая.
где именно? обычно это Shared

Добавлено через 4 минуты
Например
Bash
1
2
z@x:~$ ls -l /usr/lib/libgcc_s.so
lrwxrwxrwx 1 root root 13 Dec 23 15:02 /usr/lib/libgcc_s.so -> libgcc_s.so.1
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
30.12.2013, 17:43     GCC как часть библиотек линковать статически, а часть динамически? #9
gromo, so сама по себе является статической. Это был ответ именно на 6-е сообщение, именно про boost, и именно про MinGW.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.12.2013, 17:49  [ТС]     GCC как часть библиотек линковать статически, а часть динамически? #10
Цитата Сообщение от castaway Посмотреть сообщение
so сама по себе является статической.
Не понимаю. Можете пояснить? Обычно *.so - это разделяемые объекты для ldd, a *.a - static
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 17:58     GCC как часть библиотек линковать статически, а часть динамически?
Еще ссылки по теме:

C++ Есть ли возможность в char-массив часть данных ввести в буквах, а часть в цифрах?
Как задать проверку на дробную часть? C++
Разделить дробное число на 2 части: целая часть числа и его дробная часть C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
30.12.2013, 17:58     GCC как часть библиотек линковать статически, а часть динамически? #11
Оговорился, динамической.

Добавлено через 4 минуты
Я, вообще, видимо не в ту степь попёр.. Мне показалось что речь идёт об ОС Windows...
Yandex
Объявления
30.12.2013, 17:58     GCC как часть библиотек линковать статически, а часть динамически?
Ответ Создать тему
Опции темы

Текущее время: 08:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru