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

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

31.10.2013, 18:27. Показов 3960. Ответов 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,876
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,876
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
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru