Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
1

Статические библиотеки

31.10.2013, 18:27. Показов 2897. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго!
Есть вопрос про статические либы.

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

Внимание вопрос: если я буду использовать B-s.lib в своей программе, то нужно ли внедрять в компоновщик и тащить с собой A-s.lib, кроме хедеров? Короче, будет ли библиотека B-s.lib содержать методы A-s.lib?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2013, 18:27
Ответы с готовыми решениями:

Статические библиотеки
Как создать статическую библиотеку? Использую в турбо с. Я чего-то не то делаю? Создала файл...

Статические и динамические библиотеки
Здравствуйте! Возник вопрос в понимании задания, подскажите пожалуйста То есть в библиотеке...

Статические библиотеки и Visual studio
1) Создала новый проект как статическая библиотека без предкомпилированных заголовков. 2) Написала...

Линковка, статические, динамические библиотеки - матчасть
Парился сегодня целый день, компиля cUrl c MinGW с поддержкой https - т.е. с OpenSSL и zlib. Долго...

44
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.10.2013, 18:30 2
Будет.
1
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:31  [ТС] 3
Цитата Сообщение от castaway Посмотреть сообщение
Будет.
Благодарю.
А динамическими либами тоже самое?
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.10.2013, 18:34 4
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:36  [ТС] 5
Цитата Сообщение от castaway Посмотреть сообщение
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
Об этом. А со статическими не будет? Достаточно тащить с собой инклуды?
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.10.2013, 18:37 6
Цитата Сообщение от anonym17 Посмотреть сообщение
А со статическими не будет? Достаточно тащить с собой инклуды?
Приведи конкретный пример. Тут может быть несколько комбинаций.
0
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?
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
31.10.2013, 20:51 8
Цитата Сообщение от anonym17 Посмотреть сообщение
Достаточно ли проекту hello_world.exe использовать библиотеку sgui-s.lib и инклуды из sml и sgui?
Где у тебя в вышеописанном фигурирует эта библиотека?
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 23:42  [ТС] 9
Цитата Сообщение от castaway Посмотреть сообщение
Где у тебя в вышеописанном фигурирует эта библиотека?
Это не библиотека, исполняемый файл.
Вроде понятно же объясняю, елки палки.
Сейчас нарисую диаграмму на паинте:
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2013, 00:02 10
Цитата Сообщение от anonym17 Посмотреть сообщение
Вроде понятно же объясняю, елки палки.
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
1
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:04  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
Не путаюсь я, вроде.
Вот набросал, можно ли обойтись только первым вариантом?

Стрелки указывает на использование ресурсов из.
Миниатюры
Статические библиотеки   Статические библиотеки  
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
01.11.2013, 00:07 12
Можно. Скажу даже больше, видимо только первым и можно обойтись, и не каким другим.. Всё зависит от твоих потребностей.
1
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:10  [ТС] 13
Цитата Сообщение от castaway Посмотреть сообщение
Можно. Скажу даже больше, видимо только первым и можно обойтись, и не каким другим.. Всё зависит от твоих потребностей.
Раньше использовал только второй вариант именно в таких случаях, сейчас решил перейти на первый.
Благодарю, вы сэкономили мне время.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
01.11.2013, 00:16 14
Это не хороший совет с моей стороны, да и диаграмма бредовая. Не хочу быть плохим советчиком.. Задай вопрос нормально.
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:18  [ТС] 15
Цитата Сообщение от castaway Посмотреть сообщение
Это не хороший совет с моей стороны, да и диаграмма бредовая. Не хочу быть плохим советчиком.. Задай вопрос нормально.
Нет, вы ответили так, как надо.
Сделаю рефакторинг, и если дело пойдет не так, я подниму эту тему.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
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 и посмотри что в них находиться!!! Не помню команду как разбивать ключ не помню.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:24 17
Если я не ошибаюсь, то в статических либах зависимостей не будет (кроме зависимости в хедерах) в отличии от динамических.
1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 00:25 18
Глянул в книге, там нужно с под командной строки зайти и прописать lib.exe /LIST > myInfoFile.txt (vs2006) и оно выведет в файл myInfoFile.txt все названия .obj файлов. Как правило библиотеки деляться по функциям, для каждой функции создается свой объектный код. От разложи и посмотри содержимое, сравни.

А по простому просто попробуй не подключить, если будет работать значит не нужно!!!
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:28 19
Честно говоря я не вижу смысла в статических либах, ведь их не удастся "прикрутить" к другому компилятору, в отличии от DLL.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
01.11.2013, 00:33 20
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как и в "динамике".
0
01.11.2013, 00:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2013, 00:33
Помогаю со студенческими работами здесь

Компиляция, линковка, статические и динамические библиотеки
Доброго вам времени суток. Обращаюсь к вам со списком близких по теме вопросов. Если вам не сложно,...

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin')
какие библиотеки нужны для функций 'cout' и 'cin' ???

Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse)
Как включить библиотеки в конечный EXE как это сделано в bilder, чтобы не приходилось ставить...

статические массивы
Дана ценлочисленная прямоугольная матрица. Определитть номер первого из столбцов, содержащих хотя...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru