Да, библиотека на C++ может иметь все три типа файлов: .dll/.so (динамически подключаемые библиотеки), .lib/.a (статические библиотеки) и .h (заголовочные файлы).
Заголовочные файлы (.h) содержат объявления функций, классов, переменных и других элементов, которые определены в библиотеке. Эти объявления нужны для того, чтобы компилятор знал о существовании этих элементов и мог проверить правильность использования их в коде, который использует библиотеку. Поэтому без заголовочных файлов использование библиотеки невозможно.
Статические библиотеки (.lib/.a) представляют собой набор объектных файлов, скомпилированных из исходных кодов библиотеки, и объединенных в единую библиотеку. Эта библиотека статически связывается с программой на этапе компиляции, и все необходимые функции и классы добавляются в исполняемый файл программы.
Динамически подключаемые библиотеки (.dll/.so) являются отдельными файлами, которые могут загружаться в память программы во время ее выполнения. Эти библиотеки обычно содержат более общие функции и классы, которые могут использоваться различными приложениями.
Чтобы использовать библиотеку, обычно нужно подключить только заголовочный файл (.h) в свой исходный код, который объявляет функции, классы и другие элементы, которые будут использоваться в коде программы. Остальные файлы (.dll/.so, .lib/.a) используются автоматически, в зависимости от того, какая библиотека и какой тип связывания используется.
C/C++
Библиотека в с++ может иметь и dll, lib и h файлы? То есть обязательно все подключать?
Mohamedrizo Shahidi
Ну к примеру я использую компилятор mingw, я создал папку, в ней только фаил main.cpp. И скачал с сайта библиотеку, в ней много папок, там есть папка include там .h файлы, есть папки либ.. Короче пока вообще не особо врубаюсь что к чему. Я смотрел в Ютубе как подключить данную библиотеку, там используют Cmake. Хотел узнать что эта прога впринципе необязательна? Можно же и в ручную?
Библиотека в С++ (у майрософт) - это lib.
В h засовывают уже заранее написанные заготовки вами или до вас. Это еще можно назвать библиотекой.
А dll вообще никак не связан с языком ибо уже скомпилирован.
https://ru.stackoverflow.com/questions/184144/%D0%9A-%D1%87%D0%B5%D0%BC%D1%83-%D0%BE%D1%82%D0%BD%D0%BE%D1%81%D1%8F%D1%82%D1%81%D1%8F-lib-%D0%B8-dll
В h засовывают уже заранее написанные заготовки вами или до вас. Это еще можно назвать библиотекой.
А dll вообще никак не связан с языком ибо уже скомпилирован.
https://ru.stackoverflow.com/questions/184144/%D0%9A-%D1%87%D0%B5%D0%BC%D1%83-%D0%BE%D1%82%D0%BD%D0%BE%D1%81%D1%8F%D1%82%D1%81%D1%8F-lib-%D0%B8-dll
Mohamedrizo Shahidi
Ну к примеру я использую компилятор mingw, я создал папку, в ней только фаил main.cpp. И скачал с сайта библиотеку, в ней много папок, там есть папка include там .h файлы, есть папки либ.. Короче пока вообще не особо врубаюсь что к чему. Я смотрел в Ютубе как подключить данную библиотеку, там используют Cmake. Хотел узнать что эта прога впринципе необязательна? Можно же и в ручную?
>Ну как я понял h файлы по любому нужны?
Можешь обойтись вызовом GetProcAddress
Можешь обойтись вызовом GetProcAddress
Mohamedrizo Shahidi
Ну к примеру я использую компилятор mingw, я создал папку, в ней только фаил main.cpp. И скачал с сайта библиотеку, в ней много папок, там есть папка include там .h файлы, есть папки либ.. Короче пока вообще не особо врубаюсь что к чему. Я смотрел в Ютубе как подключить данную библиотеку, там используют Cmake. Хотел узнать что эта прога впринципе необязательна? Можно же и в ручную?
Может
Подключай только нужное, но можешь и всё, если объёмы нужного неизвестны
Подключай только нужное, но можешь и всё, если объёмы нужного неизвестны
Mohamedrizo Shahidi
Ну как я понял h файлы по любому нужны? Ну для объявления заголовочных файлов? Как я понял без h файлов не получится использовать нужные заголовочные файлы ?
Похожие вопросы
- Как в C++ продолжить классы разные сгруппировано в файлах .h и .cpp, при этом не переопределяя классы эти?
- C++ библиотека fstream. при использовании Кириллицы изменяется кодировка в создаваемом файле..
- C++, библиотека math.h
- Программирование на C++. Библиотека stdio.h
- Библиотека graphics.h. Нужно закрашивать пиксели. Есть функция putpixel(i,j,N). Но мне нужен RGB.
- В смысле С не поддерживает классы а как же библиотеки ?
- Помогите пожалуйста построить таблицу значений функции y = f(x) для x ∈ [a, b] с шагом h (с помощью условного оператора)
- C++ Работа с файлами.
- Инжект статической библиотеки в процесс
- Работа с текстовым файлом. С++