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

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

31.10.2013, 18:27. Показов 4217. Ответов 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
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от castaway Посмотреть сообщение
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как
Например ?

Чем это лучше нежели использовать сами исходники в проекте ?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 00:35
Цитата Сообщение от Avazart Посмотреть сообщение
Например ?
Например что?
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 00:39
Цитата Сообщение от Avazart Посмотреть сообщение
Честно говоря я не вижу смысла в статических либах, ведь их не удастся "прикрутить" к другому компилятору, в отличии от DLL.
За dll не читал, но у меня почему то без dll не работает с одними статическими либами, приходиться в windows/System32 скидывать dll тогда работает, а без них нихочет, еще эти dll разные бывать для дебага и для релиза, от если dll либу для дебага в компонощике релиза прописать, то программа просто вылетает у меня просто вылетает проект с openCV я туда кругом либы прописал named.dll с буковкой d это походу означает для дебага, а нужно было для релиза без буквы d прописать правильно ж????

Добавлено через 3 минуты
Цитата Сообщение от castaway Посмотреть сообщение
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как и в "динамике".
Не знаю у меня эти статические библиотеки сами не работают, обязательно приходиться dll кидать в System 32.
Три действия делаю когда библиотеки устанавливаю:
1. Копирую в include .h - файлы.
2. Копирую в lib lib-файлы.
ВЫ от говорите должно работать? А от фиг там приходиться еще и
3. Копирую в System32 все dll.
Тогда только работает.

Ну я с подключением библиотек недавно сталкивался всего 3 библиотеки подключал и все время это головняк.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 00:43
Цитата Сообщение от ninja2 Посмотреть сообщение
Не знаю у меня эти статические библиотеки сами не работают, обязательно приходиться dll кидать в System 32.
Видимо вы, вместе с Avazart, просто не знаете что такое статические библиотеки..
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 00:52
Цитата Сообщение от anonym17 Посмотреть сообщение
Не путаюсь я, вроде.
Вот набросал, можно ли обойтись только первым вариантом?
нельзя если не путаешь, одни заголовочные файлы подключать нельзя нужно и объектный код подключать, откуда он возьмется если ты .lib не подключишь?

Добавлено через 6 минут
Цитата Сообщение от castaway Посмотреть сообщение
Видимо вы, вместе с Avazart, просто не знаете что такое статические библиотеки..
Не знаю как Avazart, но я только седня узнал, интернет выключили, так я 150 страниц по программированию в виндовс прочитал и там от про них была тема, статическая библиотека (.lib) должна работать сама по себе, она просто состоит из объектных файлов. Это просто зборище объектный файлов, от например у нас есть заголовочный файл f1.h с объявлениями функций и есть f1.cpp с определениями и есть f2.h и f2.cpp соответственно. От программисты - создатели библиотек делают из .cpp фалов сначала объектный код, f1.obj и f2.obj, а затем из этих файлов составляют lib_f1_f2.lib где находяться эти объектные файлы, так от получается библиотека.
Я ж токо читал, так что я знаю, поэтому dll для работы по идее не нужна, ну за dll я не знаю ничего.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:54
Цитата Сообщение от castaway Посмотреть сообщение
Для каждого компилятора может быть своя статическая библиотека. В "статике" есть свои плюсы как и в "динамике".
Цитата Сообщение от Avazart Посмотреть сообщение
Например ?
Чем это лучше нежели использовать сами исходники в проекте ?
Цитата Сообщение от castaway Посмотреть сообщение
Например что?
Я про плюсы... какие плюсы статик либ ?

Цитата Сообщение от castaway Посмотреть сообщение
Видимо вы, вместе с Avazart, просто не знаете что такое статические библиотеки..
Ну или Вы не этого не знаете...
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 00:56
anonym17, И вообще тебе что не все рамно сколько ты .lib подключишь, компоновщик влюбом случае выберет и соберет в exe нужные ему определения функций, добавит нужные obj из .lib все либы у тебя не влючется только то что нужно , то что используется. Так что подключай хоть сто lib это на размер исполняемого файла не повлияет.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 00:56
Цитата Сообщение от Avazart Посмотреть сообщение
Я про плюсы, какие плюсы статик либ ?
С ними нет зависимостей.

Цитата Сообщение от Avazart Посмотреть сообщение
Чем это лучше нежели использовать сами исходники в проекте ?
Далеко не всегда есть исходники, только статические библиотеки..
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 00:59
Цитата Сообщение от castaway Посмотреть сообщение
Далеко не всегда есть исходники, только статические библиотеки..
Это да согласен, я в плане того что если сам создаешь эти либы, ибо легче предоставить исходники либо dll, нежели компилировать свою библиотеку под всеми компиляторами что бы создать статическую библиотеку для каждого.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 01:04
Цитата Сообщение от Avazart Посмотреть сообщение
Это да согласен, я в плане того что если сам создаешь эти либы ...
Ну тогда это зависит от твоего желания, статическая она будет, или динамическая.. Можно и лицензию к ней прикрутить.
Если пишешь для себя, то статическая как-никак кстати, ну это моё мнение.....
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 01:04
Avazart, А может быть смешаные библиотеки? От например я по твоему ману curl подлючал так от там нужно было и .lib копировать и .h и .dll.
Так какая это библиотека получается статическая или динамическая или смешаная?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
01.11.2013, 01:06
Цитата Сообщение от Avazart Посмотреть сообщение
Например ?
Чем это лучше нежели использовать сами исходники в проекте ?
используешь ли ты исходники когда пишешь
cout<<?? sin()?? и прочие библиотечные функции?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 01:08
Цитата Сообщение от ninja2 Посмотреть сообщение
Avazart, А может быть смешаные библиотеки? От например я по твоему ману curl подлючал так от там нужно было и .lib копировать и .h и .dll.
То другой *.lib - то либ импорта, для импорта ф-ций из DLL
А есть именно "*.lib-статик" ( он весит даже по размеру больше)

Обычно либы идут в двух вариантах.
Но к примеру статический либ от VC++ я не могу использовать для С++Builder, поэтому приходится подгружать динамически из dll
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 01:17
Цитата Сообщение от Avazart Посмотреть сообщение
То другой *.lib - то либ импорта для импорта ф-ций из DLL
А как определять либ импорта или нет? Или просто смотреть инструкцию по установке и делать как там пишут? Если нет dll, то значит обычная lib?

В принципе можно методом тыка, если просит .dll, то значит нужно, если не просит то не нужно.

А сколько бывает видов lib? Статическая раз, lib импорта 2, и все? lib - импорта это похоже и есть динамическая dll. Догадываюсь видимо без нее нельзя dll подключать dll, просто без lib. Ладно не буду тупые вопросы задавать, лучше прочить и разобраться самому . ну я вообще ноль за dll ничего не знаю.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 01:18
Цитата Сообщение от ninja2 Посмотреть сообщение
А как определять либ импорта или нет?
Либ импорта обычно лежат рядом с dll, а статик в отдельной папке названной соответственно.
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
01.11.2013, 01:19
Бывают только статические библиотеки, и библиотеки импорта (те, что привязываются к динамическим). Других нет.
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 01:19
Цитата Сообщение от ninja2 Посмотреть сообщение
лучше прочить и разобраться самому
Dynamic-Link Library: Теория + Практика
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
01.11.2013, 01:20
Цитата Сообщение от Avazart Посмотреть сообщение
Либ импорта обычно лежат рядом с dll, а статик в отдельной папке названной соответственно.
А ясно, ну со временем разберусь, походу библиотеки приходиться часто подключать.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
01.11.2013, 01:21
Цитата Сообщение от ninja2 Посмотреть сообщение
Догадываюсь видимо без нее нельзя dll подключать dll, просто без lib.
можно
но это динамическая загрузка ( явная)
LoadLibrary() и GetProcAddress()
вот посмотри
http://citforum.ru/book/cook/dll0.shtml
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.11.2013, 01:23
Цитата Сообщение от castaway Посмотреть сообщение
Если пишешь для себя, то статическая как-никак кстати, ну это моё мнение.....
Ну я отказался от такого мнения когда заметил что при переходе из одной версии С++Builder в более новую, библиотека lua собранная в статик либу ранее, перестала линковаться к проекту, и я долго искал причину тогда...

Кроме того отлаживать проект наверное легче когда есть исходники.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2013, 01:23

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru