Как устанавливать библиотеки в visual studio
Краткая инструкция по установке всех нужных для курса библиотек для Visual Studio
На Windows рекомендуется использовать
- Visual Studio Community Edition последней версии для разработки
- vcpkg для установки пакетов
- CMake для сборки некоторых библиотек
Без vcpkg каждую библиотеку придётся ставить по отдельности. Пакетный менеджер vcpkg автоматизирует скачивание и сборку библиотек на машине разработчика.
Установка CMake
Для сборки примеров потребуется CMake. Свои работы можно делать без CMake.
- Скачайте Cmake с официального сайта
- При установке не забудьте поменять опцию, чтобы путь к CMake был добавлен в переменную PATH
- Переменные окружения, такие как PATH, передаются приложению при старте. Если вы поменяли переменную PATH, изменения вступят в силу после перезапуска программ.
Установка и использование vcpkg
Пакетный менеджер vcpkg распространяется в исходниках и собирается на машине разработчика. Для сборки потребуется установленная Visual Studio с инструментами C++ разработчика.
Порядок установки описан в консольных командах:
:: Клонируем репозиторий vcpkg (ветка master) git clone https://github.com/Microsoft/vcpkg :: Переходим в каталог клона репозитория cd vcpkg :: Выполняем скрипт для сборки vcpkg powershell -exec bypass scripts\bootstrap.ps1 :: Теперь в корне репозитория лежит vcpkg.exe, который можно вызывать :: из каталога либо добавить в переменную окружения PATH. :: Установка библиотеки выполняется командой install vcpkg install sdl2:x86-windows-static sdl2:x64-windows-static
Из команды выше легко понять, что имена пакетов перечисляются по порядку, а в качестве суффикса используется так называемый “триплет”: имя_пакета:триплет .
- Имя пакета задаёт одно из множества имён доступных библиотек.
- Триплет задаёт архитектуру и режим сборки
arm-uwp.cmake x64-uwp.cmake x64-windows-static.cmake x64-windows.cmake x86-uwp.cmake x86-windows-static.cmake x86-windows.cmake
Для данного курса рекомендуются триплеты x86-windows-static для сборки 32-битной версии программы и x64-windows-static для сборки 64-битной версии. Суффикс static означает, что библиотеки будут собираться статически и вам не потребуется распространять DLL.
Вместо явного указания триплета для каждой библиотеки можно разом указать триплет для всех:
vcpkg --triplet x86-windows-static sdl2 sdl2-image
Последняя, но крайне важная деталь: включите автоматическую интеграцию пакетов vcpkg во все проекты Visual C++:
:: Включаем интеграцию во все проекты Visual C++ в системе. :: При первом запуске нужны права администратора. vcpkg integrate install :: Удаляем интеграцию - если она вам помешала. vcpkg integrate remove
Установка пакетов для курса
Мы используем следующие библиотеки:
- sdl2, sdl2-image, sdl2-mixer, sdl2-ttf в целях абстрагирования от операционной системы для создания окон, растеризации текстовых надписей, загрузки изображений с диска, загрузки и проигрывания звуковых файлов
- glbinding для прозрачного подключения нужной версии API OpenGL без необходимости вручную работать с механизмом расширений OpenGL
- assimp3 для загрузки 3D моделей из множества форматов файлов
- anax для построения архитектуры программы на принципах Component-Entity-System
- bullet3 для расчёта столкновений в 3D пространстве
- glm для работы с линейной алгеброй в рамках задач 3D графики
- nlohmann-json для загрузки JSON
- tinyxml2 для загрузки XML
Команда для установки 32-битных версий библиотек из исходников может выполняться долго, т.к. сборка занимает длительное время:
vcpkg --triplet x86-windows-static sdl2 sdl2-image sdl2-mixer sdl2-ttf glbinding assimp anax bullet3 glm nlohmann-json tinyxml2
Настройка gitignore для своих проектов
В Visual Studio управление настройками сборки производится в графическом режиме в окне настроек проекта, хотя сами настройки сохраняются в XML определённой схемы в файле *.vcxproj . Виртуальные папки (фильтры), по которым разложены файлы проекта, сохраняются в файле *.vcxproj.filters . Настройки проекта из раздела Debugging, а также некоторые неявные пользовательские настройки сохраняются в *.vcxproj.user . Есть общепринятые правила:
- Файлы *.vcxproj необходимы и достаточны для сборки проекта, их следует держать под контролем версий Git, а настройки проекта изменять аккуратно
- Файлы *.vcxproj.filters не нужны для сборки, но хранят фильтры файлов, их тоже следует держать под контролем версий Git
- Файлы *.vcxproj.user хранят специфичные для компьютера настройки, их не следует держать в Git
- Файлы *.sln хранят списки проектов и информацию о сборке всего списка проектов в разных конфигурациях. Их следует держать в Git.
Вы можете взять готовый шаблон файла .gitignore из репозитория github.com/github/gitignore. После добавления файла .gitignore в корень своего репозитория достаточно сделать commit, добавляющий этот файл.
PS-Group
- PS-Group
- sshambir@gmail.com
- ps-group
- image/svg+xml sshambir
Как подключить библиотеку в проекте на С++
При использование Visual Studio: самый простой — в любом файле добавить запись:
#pragma comment(lib, "")
Как альтернатива, можно указать lib-файл в свойствах проекта, для этого перейдите к пункту:
- Linker → General → Additional Library Directories — указать каталог с lib-файлов.(напр. D:\ace\lib)
- Linker → Input → Additional Dependencies — указать само название lib файла (напр. ace_vc11.lib)
Так же в C/C++ → General → Additional Include Directories можно указать путь к *.h файлам, чтоб в своих исходниках не прописывать полный путь на диске.
Update:
Если библиотека из себя представляет только h-файл(такое возможно), тогда достаточно просто написать:
#include ""
и далее пользоваться предоставленным функционалом.
Но в основном библиотека представляет из себя *.lib -файл и *.h -файлы, необходимые для сборки своего приложения а также непосредственно *.dll -файл, необходимый для запуска приложения.
Подключение и использование библиотек в Visual Studio
В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017 (работать будет и с более новыми версиями Visual Studio).
Оглавление:
- Шаг №1: Создаем папку для хранения библиотеки
- Шаг №2: Скачиваем и устанавливаем библиотеку
- Шаг №3: Указываем путь к заголовочным файлам библиотеки
- Шаг №4: Указываем путь к файлам с реализацией библиотеки
- Шаг №5: Копируем dll-ку в папку с проектом
- Шаг №6: Тестируем
Шаг №1: Создаем папку для хранения библиотеки
Создаем папку Libs на диске C ( C:\Libs ).
Шаг №2: Скачиваем и устанавливаем библиотеку
Заходим на сайт https://www.libsdl.org/download-2.0.php, пролистываем вниз до «Development Libraries» и скачиваем SDL2-devel-2.0.9-VC.zip (Visual C++ 32/64-bit). После успешного скачивания нужно разархивировать этот архив в папку Libs .
Шаг №3: Указываем путь к заголовочным файлам библиотеки
Открываем свой любой проект в Visual Studio или создаем новый, переходим в «Обозреватель решений» > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > «Свойства» :

В «Свойства конфигурации» ищем вкладку «С/С++» > «Общие» . Затем выбираем пункт «Дополнительные каталоги включаемых файлов» > нажимаем на стрелочку в конце > «Изменить» :

В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:

Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в нее ( C:\Libs\SDL2-2.0.9\include ) и нажимаем «Выбор папки» , а затем «ОК» :
Шаг №4: Указываем путь к файлам с реализацией библиотеки
Переходим на вкладку «Компоновщик» > «Общие» . Ищем пункт «Дополнительные каталоги библиотек» > нажимаем на стрелочку в конце > «Изменить» :

Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:\Libs\SDL2-2.0.9\lib\x86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86 . Даже если у вас Windows разрядности x64, указывать нужно папку x86 . Затем «Выбор папки» и «ОК» :

После этого переходим в «Компоновщик» > «Ввод» . Затем «Дополнительные зависимости» > нажимаем на стрелочку в конце > «Изменить» :

В появившемся текстовом блоке вставляем:

Затем переходим в «Компоновщик» > «Система» . После этого «Подсистема» > нажимаем на стрелочку вниз > выбираем «Консоль (/SUBSYSTEM:CONSOLE)» > «Применить» > «ОК» :
Шаг №5: Копируем dll-ку в папку с проектом
Переходим в папку x86 ( C:\Libs\SDL2-2.0.9\lib\x86 ), копируем SDL2.dll и вставляем в папку с вашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio, нажмите ПКМ по названию вашего проекта > «Открыть содержащую папку» :

Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):

Шаг №6: Тестируем
Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:
int main ( int argc , char * argv [ ] )
if ( SDL_Init ( SDL_INIT_EVERYTHING ) < 0 )
std :: cout << "SDL initialization failed. SDL Error: " << SDL_GetError ( ) ;
std :: cout << "SDL initialization succeeded!" ;
std :: cin . get ( ) ;
Если результат следующий:
SDL initialization succeeded!
Значит мы успешно подключили библиотеку SDL к нашему проекту!
Если вы получили какую-либо ошибку, то внимательно повторите все вышеприведенные действия, но уже с новым проектом. Скорее всего вы что-то пропустили или указали неверные пути к папкам.
(136 оценок, среднее: 4,70 из 5)
Статические и динамические библиотеки
C++11. Нововведения
Комментариев: 13
Спустя время вернулся чтобы порекомендовать ЛУЧШИЙ метод подключения сторонник библиотек в Visual Studio. Рассмотрим на примере весьма полезной библиотеки длинной арифметики gmp, а точнее ее брата близнеца для windows — mpir! Установка vcpkg Для установки любой библиотеки, которую создала более-менее приличная компания вам понадобится только vcpkg. Для установки vcpkg открываем Visual Studio > Git > Клонировать репозиторий . В расположение репозитория указываем https://github.com/microsoft/vcpkg Путь указываем на свое усмотрение, у меня это C:\vcpkg Нажимаем «Клонировать» и ожидаем завершения процесса. Получаем сообщение о том, что один или несколько объектов небыли загружены, ничего страшного. Можно закрыть Visual Studio. Открываем командную строку, для тех кто не знает как это сделать: нажимаем Win+R и в окошке «Выполнить» пишем: cmd В командной строке: cd C:\vcpkg (или путь, который вы указали для vcpkg в Visual Studio). В итоге рабочая папка командной строки должна измениться на путь к вашей vcpkg. (в данном случае C:\vcpkg ). В командной строке пишем: bootstrap-vcpkg.bat — Ожидаем окончания процесса. В командной строке: vcpkg integrate install — Ожидаем окончания процесса. На этом установка vcpkg завершена, теперь мы можем его использовать для установки любой библиотеки (о которой он знает, конечно же, а таких бесконечно много). Установка библиотек Теперь установка самой библиотеки. Открываем Visual Studio, консольный проект и пишем #include , например в моем случае: #include , такой библиотеки в моем Visual Studio еще нет, но vcpkg сразу предлагает ее установить. Возле вашего #include появляется помощник vcpkg и предлагает скопировать команду для установки библиотеки в буфер обмена, нажимаем ее. Открываем командную строку, переходим в рабочую папку vcpkg: ( Win+R , в окошке «Выполнить»: cmd , в командной строке: cd C:\vcpkg или путь к вашему vcpkg) Теперь, когда мы в командной строке находимся в рабочей папке с vcpkg вводим команду из буфера обмена, которую мы получили в Visual Studio, в моем случае для библиотеки GMP она выглядит так: vcpkg install mpir:x64-windows Ожидаем окончания процесса (может занять несколько минут). Открываем Visual Studio, можем использовать #include Прелесть метода заключается в том, что вам не нужно линковать библиотеку или делать какие либо настройки вашего проекта кроме непосредственного подключения библиотеки с помощью #include
Это касается всех проектов и всех библиотек, которые знает vcpkg. Использовал Visual Studio Enterprise 2022.
Сработало только с версией х64, видимо для тех у кого 64-битная IDE нужно делать так же.
Юрий! Статья несомненно хорошая, но не полная и с недочётом.
Недочёт в следующем: не учтён конфигуратор решений. Если в конфигурации будет «Debug», а в изменяемых свойствах стоять «Relase», то всё сделаешь правильно, а файл с библиотекой найден не будет.
Кроме того, хоть пару слов желательно было бы услышать о том, зачем выполнять тот или иной пункт, так как тогда легче было бы повторить всё это в другой ситуации. Но, всё равно, большое спасибо за статью, помогла!
Как установить библиотеку C++ в VS code?
Я скачал библиотеку вот тут: «», но не могу её установить в VS code, т.к работаю в нем не так много. Помогите пожалуйста!
- Вопрос задан более года назад
- 2754 просмотра
Комментировать
Решения вопроса 1

Владимир Коротенко @firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
вам интересен includePath
Ответ написан более года назад
