Стереотипы давно в прошлом. Сегодня Microsoft придерживается концепции «любой разработчик, любое приложение, любая платформа». Например, у нас есть специальные дистрибутивы Linux, рекомендованные для использования в облаке. Ну а о сотрудничестве с Apple знают, наверное, все. Сегодня расскажем вам о едином диспетчере библиотек C++ — vcpkg, который теперь стал доступен не только для Windows, но и для Linux и Mac OS. Заглядывайте под кат!
И всем крутых выходных!
Ключевой принцип концепции Microsoft, как мы уже сказали, «любой разработчик, любое приложение, любая платформа». Мы неизменно следуем ему, предоставляя пользователям самые производительные инструменты и службы, предназначенные для разработки приложений на всех платформах. В этой связи мы рады сообщить, что с сегодняшнего дня подключаемый модуль vcpkg поддерживается в ОС Linux и Mac OS. Теперь можно мгновенно получить доступ к каталогу vcpkg с библиотеками С++ еще на двух платформах, выполнив для этого всего два простых действия, знакомых по Windows и UWP.
Подключаемый модуль vcpkg прошел долгий путь с момента своей первой презентации на конференции CppCon-2016. Вначале было всего 20 библиотек, но за последние 19 месяцев их число выросло невероятно — более чем до 900! Это неоценимая заслуга замечательных участников нашего сообщества.
Судя по вашим отзывам, именно поддержка систем Linux и Mac оказалась самой востребованной из потенциальных возможностей. И сегодня мы видим, что подключаемый модуль vcpkg стал доступен гораздо большему числу пользователей, упрощая кросс-платформенный доступ к еще большему количеству библиотек С++. Сегодня мы предлагаем вам оценить работу с vcpkg в ОС Windows, Linux или Mac OS.
Использование vcpkg в ОС Linux и Mac
Теперь подключаемый модуль vcpkg поддерживает совместимость с ОС Linux, Mac и другими системами POSIX. Это стало возможным только благодаря личному вкладу нескольких замечательных участников сообщества в разработку.
На момент написания этой публикации в блоге для Linux и Mac насчитывалось свыше 300 библиотек, и мы ожидаем, что скоро их станет гораздо больше. В настоящее время ведется тестирование vcpkg в ОС Ubuntu-LTS 16.04/18.04, мы успешно опробовали этот новый инструмент в Arch, Fedora и FreeBSD.
Начало работы
- Клонируйте репозиторий vcpkg: введите команду github.com/Microsoft/vcpkg
- Запустите начальный загрузчик vcpkg: ./bootstrap-vcpkg.sh
- После установки vcpkg вы можете создать любую библиотеку, используя следующий синтаксис:
vcpkg install sdl2
Будет установлена sdl2:x64-linux (по умолчанию устанавливается стационарная 64-разрядная версия, пока единственная доступная для Linux).
Результат (.h, .lib) сохраняется в то же дерево папок, и на эту папку следует ссылаться в конфигурации системы управления сборками.
- Работа с созданной библиотекой
1. Если в качестве системы управления сборками применяется CMake, используйте CMAKE_TOOLCHAIN_FILE, чтобы открыть доступ к библиотекам для `find_package()`. Например: cmake… “-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake”.
Необходимо сделать ссылку на папку vcpkg, в которой содержатся заголовки (vcpkginstalledx64-linuxinclude), а также на папку .lib (vcpkginstalledx64-linuxlib), чтобы создать проект, используя сгенерированные библиотеки.
Использование vcpkg для привязки к Linux из Windows посредством WSL
Поскольку WSL является Linux-системой, мы будем использовать ее аналогично Linux. Правильно выполнив настройку один раз, вы будете создавать библиотеки Linux на компьютере с ОС Windows точно так же, как если бы они генерировались в песочнице Linux. Следуйте инструкциям, используемым для установки в Linux. Ознакомьтесь с инструкциями по установке WSL в Windows 10 и настройке с помощью расширения Visual Studio для Linux.
Как показано на снимке экрана выше, к каталогу vcpkg можно осуществлять доступ как из Windows, так и из WSL. В этом примере построение sdl2 и sqlite3 выполнялось в WSL (двоичные коды для Linux); sqlite3 также предназначена и для ОС Windows (Windows dll).
Заключение
Установите диспетчер пакетов vcpkg в ОС Linux или Mac, протестируйте его в своих кросс-платформенных проектах, поделитесь впечатлениями и расскажите, что еще мы можем улучшить.
Ваши отзывы и комментарии действительно очень важны для нас. Чтобы поделиться мнением или задать вопрос, создайте обращение на GitHub или отправьте нам сообщение на адрес электронной почты vcpkg@microsoft.com. Мы также будем благодарны, если вы найдете пару минут для участия в нашем опросе.
Об авторе
Эрик Митлетт — старший менеджер программ в команде VC++. Он владеет библиотеками (STL, VC Runtime CPPRestSDK FC / ATL и vcpkg). Участвовал в создании и презентации vcpkg 18 месяцев назад. Вначале 20 библиотек, теперь более чем 900. Кроме того, теперь они поддерживаются Linux и Mac. Если у вас есть вопросы, можете написать Эрику: ericmitt@microsoft.com, или его группе: vcpkg@microsoft.com.
Автор: Александр Гуреев