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

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

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

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

Допустим, у нас есть статическая либа 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2013, 18:27
Ответы с готовыми решениями:

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

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

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

44
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
31.10.2013, 18:30
Будет.
1
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:31  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Будет.
Благодарю.
А динамическими либами тоже самое?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
31.10.2013, 18:34
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:36  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Если есть либа A.dll, и ты собираешь либу B.dll с использованием либы A.dll, то либа B.dll будет зависеть от либы A.dll
Если ты об этом..
Об этом. А со статическими не будет? Достаточно тащить с собой инклуды?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
31.10.2013, 18:37
Цитата Сообщение от anonym17 Посмотреть сообщение
А со статическими не будет? Достаточно тащить с собой инклуды?
Приведи конкретный пример. Тут может быть несколько комбинаций.
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 18:47  [ТС]
Конкретный пример не могу привести, но могу точнее описать.
Допустим:

- Есть статическая мультимедийная(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
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
31.10.2013, 20:51
Цитата Сообщение от anonym17 Посмотреть сообщение
Достаточно ли проекту hello_world.exe использовать библиотеку sgui-s.lib и инклуды из sml и sgui?
Где у тебя в вышеописанном фигурирует эта библиотека?
0
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
31.10.2013, 23:42  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Где у тебя в вышеописанном фигурирует эта библиотека?
Это не библиотека, исполняемый файл.
Вроде понятно же объясняю, елки палки.
Сейчас нарисую диаграмму на паинте:
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2013, 00:02
Цитата Сообщение от anonym17 Посмотреть сообщение
Вроде понятно же объясняю, елки палки.
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
1
2 / 0 / 1
Регистрация: 31.10.2013
Сообщений: 21
01.11.2013, 00:04  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы в названиях библиотек не путайтесь, тогда и будет понятно.
Не путаюсь я, вроде.
Вот набросал, можно ли обойтись только первым вариантом?

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

А по простому просто попробуй не подключить, если будет работать значит не нужно!!!
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:28
Честно говоря я не вижу смысла в статических либах, ведь их не удастся "прикрутить" к другому компилятору, в отличии от DLL.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 00:33
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как и в "динамике".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2013, 00:33
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru