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

Статические библиотеки - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:27     Статические библиотеки #1
Всем доброго!
Есть вопрос про статические либы.

Допустим, у нас есть статическая либа A-s.lib (/MT)
Его внедряем в новый проект-библиотекарь, т.е которая будет использовать A-s.lib. После на выходе мы имеем B-s.lib. (/MT)

Внимание вопрос: если я буду использовать B-s.lib в своей программе, то нужно ли внедрять в компоновщик и тащить с собой A-s.lib, кроме хедеров? Короче, будет ли библиотека B-s.lib содержать методы A-s.lib?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 18:27     Статические библиотеки
Посмотрите здесь:

C++ Статические массивы
Статические библиотеки C++
статические массивы C++
C++ Массивы(статические)
C++ Линковка, статические, динамические библиотеки - матчасть
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 18:30     Статические библиотеки #2
Будет.
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:31  [ТС]     Статические библиотеки #3
Цитата Сообщение от castaway Посмотреть сообщение
Будет.
Благодарю.
А динамическими либами тоже самое?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 18:34     Статические библиотеки #4
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:36  [ТС]     Статические библиотеки #5
Цитата Сообщение от castaway Посмотреть сообщение
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
Об этом. А со статическими не будет? Достаточно тащить с собой инклуды?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 18:37     Статические библиотеки #6
Цитата Сообщение от anonym17 Посмотреть сообщение
А со статическими не будет? Достаточно тащить с собой инклуды?
Приведи конкретный пример. Тут может быть несколько комбинаций.
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:47  [ТС]     Статические библиотеки #7
Конкретный пример не могу привести, но могу точнее описать.
Допустим:

- Есть статическая мультимедийная(sml) библиотека: sml_system-s.lib, sml_graphic-s.lib

- Есть левая ГУИ библиотека(sgui.lib), которая собирается из sml_graphic-s, sml_system-s.lib

- Есть конечный проект (hello_world.exe), которому нужно использовать обе библиотеки.

Достаточно ли проекту hello_world.exe использовать библиотеку sgui-s.lib и инклуды из sml и sgui?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
31.10.2013, 20:51     Статические библиотеки #8
Цитата Сообщение от anonym17 Посмотреть сообщение
Достаточно ли проекту hello_world.exe использовать библиотеку sgui-s.lib и инклуды из sml и sgui?
Где у тебя в вышеописанном фигурирует эта библиотека?
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 23:42  [ТС]     Статические библиотеки #9
Цитата Сообщение от castaway Посмотреть сообщение
Где у тебя в вышеописанном фигурирует эта библиотека?
Это не библиотека, исполняемый файл.
Вроде понятно же объясняю, елки палки.
Сейчас нарисую диаграмму на паинте:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2013, 00:02     Статические библиотеки #10
Цитата Сообщение от anonym17 Посмотреть сообщение
Вроде понятно же объясняю, елки палки.
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:04  [ТС]     Статические библиотеки #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
Не путаюсь я, вроде.
Вот набросал, можно ли обойтись только первым вариантом?

Стрелки указывает на использование ресурсов из.
Миниатюры
Статические библиотеки   Статические библиотеки  
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
01.11.2013, 00:07     Статические библиотеки #12
Можно. Скажу даже больше, видимо только первым и можно обойтись, и не каким другим.. Всё зависит от твоих потребностей.
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:10  [ТС]     Статические библиотеки #13
Цитата Сообщение от castaway Посмотреть сообщение
Можно. Скажу даже больше, видимо только первым и можно обойтись, и не каким другим.. Всё зависит от твоих потребностей.
Раньше использовал только второй вариант именно в таких случаях, сейчас решил перейти на первый.
Благодарю, вы сэкономили мне время.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
01.11.2013, 00:16     Статические библиотеки #14
Это не хороший совет с моей стороны, да и диаграмма бредовая. Не хочу быть плохим советчиком.. Задай вопрос нормально.
anonym17
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:18  [ТС]     Статические библиотеки #15
Цитата Сообщение от castaway Посмотреть сообщение
Это не хороший совет с моей стороны, да и диаграмма бредовая. Не хочу быть плохим советчиком.. Задай вопрос нормально.
Нет, вы ответили так, как надо.
Сделаю рефакторинг, и если дело пойдет не так, я подниму эту тему.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 00:19     Статические библиотеки #16
Цитата Сообщение от anonym17 Посмотреть сообщение
Допустим, у нас есть статическая либа A-s.lib (/MT)
Его внедряем в новый проект-библиотекарь, т.е которая будет использовать A-s.lib. После на выходе мы имеем B-s.lib. (/MT)
Внимание вопрос: если я буду использовать B-s.lib в своей программе, то нужно ли внедрять в компоновщик и тащить с собой A-s.lib, кроме хедеров? Короче, будет ли библиотека B-s.lib содержать методы A-s.lib?
Токо читал про статические либы в VS. От пишут что библиотека состаит из набора объектных файлов obj можно создать самому библиотеку lib использовать для этого lib.exe и передать на вход ему файлы file.obj file1.obj .... filen.obj и на выходе мы получим библиотеку .lib. Так же можно lib разбить обратно на obj и даже вроде из нее удалить какой нить obj. И создатели библиотек стараются разбить на минимальные единицы .obj, что б каждой функции соответствовал один .obj, это сделано для того что бы при использовании какой нить функции мы подлючили только один нужный obj от одной функции, а не с левыми, которые не используются.

В общем если у тебя эта прога просто создает одну библиотеку из другой, ну хз. мб она выборочно повключает в эту новую все объектные файлы нужные для работы.

Если у тебя есть новый файл, то ты можешь просто его разбить на объектные файлы и посмотреть что в ней содержиться lib.exe - это прога которая разбивает библиотеки lib, на объектные файлы и создает из них. Просто разбей первый файл A-s.lib и потом второй B-s.lib и посмотри что в них находиться!!! Не помню команду как разбивать ключ не помню.
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.11.2013, 00:24     Статические библиотеки #17
Если я не ошибаюсь, то в статических либах зависимостей не будет (кроме зависимости в хедерах) в отличии от динамических.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.11.2013, 00:25     Статические библиотеки #18
Глянул в книге, там нужно с под командной строки зайти и прописать lib.exe /LIST > myInfoFile.txt (vs2006) и оно выведет в файл myInfoFile.txt все названия .obj файлов. Как правило библиотеки деляться по функциям, для каждой функции создается свой объектный код. От разложи и посмотри содержимое, сравни.

А по простому просто попробуй не подключить, если будет работать значит не нужно!!!
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
01.11.2013, 00:28     Статические библиотеки #19
Честно говоря я не вижу смысла в статических либах, ведь их не удастся "прикрутить" к другому компилятору, в отличии от DLL.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 00:33     Статические библиотеки
Еще ссылки по теме:

Статические библиотеки и Visual studio C++
статические функции C++
C++ Статические и динамические библиотеки

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
01.11.2013, 00:33     Статические библиотеки #20
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как и в "динамике".
Yandex
Объявления
01.11.2013, 00:33     Статические библиотеки
Ответ Создать тему
Опции темы

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