Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С++. Подскажите пожалуйста как научиться подключать сторонние библиотеки?

James Toney Профи (632), открыт 2 недели назад
Я пользовался visual studio, по видеоурокам с Ютуба подключал библиотеки с которыми хотел работать. Но понимания так не обрёл.
Щас захотелось попробовать компилятор mingw, а так без этого понимания видать никак..
Я узнал что у компилятора mingw вместо . lib используется тип . а
То есть те библиотеки которые ставятся и работают в visual studio не запустятся в mingw?
И хотел спросить про такой процесс как "линковка" это нужно для подключения библиотек?
Вообще что бы подключить библиотеку по мимо include надо что то ещё делать?
К примеру видел что в командной строке командой путь прописывают к файлам библиотеки? Это обязательно нужно делать что бы библиотеку подключить ? Или можно обойтись кодом?
1 ответ
Олешка Кнуклик Знаток (279) 2 недели назад
В случае с MinGW, вы правы, что используются файлы с расширением .a вместо .lib, которые используются в Visual Studio. Однако, некоторые .lib файлы, созданные для 32-битных приложений, могут быть совместимы с MinGW2. Если у вас есть .lib файлы, предназначенные для использования с Visual Studio, и вы хотите использовать их с MinGW, вам может потребоваться преобразовать их в формат .a. Это можно сделать с помощью инструментов, таких как gendef и dlltool, которые входят в состав MinGW2.

Чтобы подключить стороннюю библиотеку в ваш проект, вам нужно указать путь к заголовочным файлам библиотеки и самим библиотекам (.a или .lib файлам). В командной строке это делается с помощью флагов -I для путей к заголовочным файлам и -L для путей к библиотекам, а также -l для указания самой библиотеки3.

Вот пример команды для компиляции с использованием MinGW:

g++ -Iпуть/к/заголовочным/файлам -Lпуть/к/библиотекам -lname -o ваша_программа ваш_файл.cpp

Где:

-Iпуть/к/заголовочным/файлам указывает путь к заголовочным файлам библиотеки.
-Lпуть/к/библиотекам указывает путь к библиотекам.
-lname указывает имя библиотеки без префикса lib и расширения .a или .lib.
ваша_программа это имя исполняемого файла, который будет создан.
ваш_файл.cpp это ваш исходный файл.
James ToneyПрофи (632) 2 недели назад
То есть достаточно -l и -L?
А в коде обязательно указывать нужную библиотеку?
#pragma comment(lib, "DevIL.lib")
#pragma это тоже нужно для подключения или можно без него обойтись?
Похожие вопросы