Як: статычна звязаць бібліятэкі C ++ з vcpkg + Visual Studio 2019

Сувязь з бібліятэкамі C ++ і статычная сувязь іх з вашым праектам можа стаць абсалютным болем зрабіць уручную. На шчасце, ёсць менеджэры пакетаў, такія як vcpkg, якія могуць значна палегчыць загрузку і кіраванне залежнасцямі C ++. На жаль, (або на шчасце ў залежнасці ад вашага выгляду) vcpkg працуе з выкарыстаннем дынамічных спасылак з скрынкі, але статычнае звязванне бібліятэк патрабуе пэўнай працы. Я перажыў шмат болю, каб зразумець, як статычна звязваць пакеты з vcpkg і Visual Studio, таму я пішу гэты ўрок, каб вам не прыйшлося пераглядаць тое, што я зрабіў. У гэтым уроку я пакажу вам, як наладзіць vcpkg і інтэграваць яго ў праект Visual Studio C ++. Нарэшце, я распавяду пра тое, як наладзіць Visual Studio для выкарыстання статычных бібліятэк, загружаных vcpkg, каб пачаць працу!

0. Усталёўка і ўстаноўка VCPKG

Для пачатку пераканайцеся, што ў вас на машыне ўсталяваны git і Visual Studio 2019. Тут вы можаце спампаваць git і Visual Studio.

Далей мы будзем загружаць vcpkg. Для гэтага вам трэба наведаць тут сховішча GitHub vcpkg. Пасля таго, як вы націснеце на зялёную кнопку "Клоніраваць або загрузіць" і скапіруйце спасылку, якая з'явіцца.

GitHub vcpkg

Зараз вярніцеся на працоўны стол і ўвядзіце:

Ключ Windows + R

і ў дыялогавым акне ўвядзіце:

cmd

Камандная радок Windows загружаецца, і вы павінны ўбачыць нешта накшталт гэтага:

Камандная радок Windows

У камандным радку ўвядзіце git clone і спасылку GitHub, якую вы скапіравалі раней, і націсніце Enter:

> Клон Git https://github.com/microsoft/vcpkg.git

Ваш выхад павінен выглядаць так:

Вынік пасля кланавання vcpkg

Цяпер вы паспяхова загрузілі vcpkg! Такім чынам, зараз дазваляе ўсталяваць яго і загрузіць некаторыя пакеты!

У камандным радку зайдзіце ў каталог vcpkg:

> cd vcpkg

Затым усталяваць Enter:

> bootstrap-vcpkg.bat

Ваш выхад павінен выглядаць так:

Усталюйце vcpkg

Далей мы хочам інтэграваць vcpkg з нашай устаноўкай Visual Studio, каб зрабіць усё, што вам трэба зрабіць, гэта ўвесці:

> vcpkg інтэграваць ўсталяваць

Ваш выхад будзе выглядаць так:

Інтэграцыя vcpkg з Visual Studio

Не бярыце ўвагі, што я зараз у тэчцы пад назвай "Projects", як і ў мяне была папярэдняя ўстаноўка vcpkg.

1. Загрузка залежнасцей

Вы зрабілі выдатна дагэтуль, таму дазваляе ўсталяваць некаторыя пакеты!

Для пошуку пакетаў для загрузкі ўвядзіце:

> vcpkg пошук 

Напрыклад дазваляе шукаць бібліятэку spdlog:

vcpkg пошуку spdlog

Мы знайшлі пакет spdlog! Цяпер дазваляе загрузіць яго.

Ёсць два шляхі для гэтага. Калі вы хочаце спампаваць пакет і выкарыстоўваць яго з дынамічнай спасылкай, усё, што вам трэба зрабіць, гэта ўвесці: vcpkg install spdlog. Але мы не хочам гэтага рабіць, таму што мы хочам загрузіць статычныя бібліятэкі для патрэбнай нам платформы. У гэтым прыкладзе мы загрузім spdlog для платформы Windows 64.

Для гэтага ўвядзіце:

> vcpkg ўсталяваць spdlog: x64-windows-static

Вы павінны ўбачыць наступны выхад:

Ўстаноўка статычных бібліятэк spdlog

Цяпер мы загрузілі нашу бібліятэку, таму дазваляе наладзіць Visual Studio для яе выкарыстання!

2. Канфігурацыя Visual Studio

Спачатку адкрыйце Visual Studio 2019 і націсніце "Стварыць новы праект".

Візуальная студыя 2019

Выберыце "Прыкладанне кансолі":

Стварыце новы праект

Увядзіце назву вашага праекта і націсніце кнопку "Стварыць".

Наладзьце свой праект

Зараз тут пачынаецца задавальненне.

Паколькі мы выкарыстоўваем платформу x64, першае, што мы хочам зрабіць, гэта змяніць наш праект з x86 па змаўчанні на x64.

Для гэтага змяніце выпадальны спіс у верхняй частцы экрана з x86 на x64, каб гэта выглядала так:

Адладка x64

Затым перайдзіце да Правадыра рашэнняў і націсніце на значок «Выгляд тэчкі» і абярыце опцыю «Выгляд папкі».

Абразок тэчкі

Вы павінны бачыць файлы рашэнняў для сваіх праектаў:

Выгляд папкі праекта

Націсніце на .vcxproj файл у спісе. Вы ўбачыце XML-дакумент. Пракруціць ўніз, пакуль вы не ўбачыце тэг.

Група нерухомасці глабалаў

У самым нізе дадайце наступны радок:

 x64-windows-статык 

Гэта будзе выглядаць па-рознаму ў залежнасці ад платформы, якую вы вырашыце выкарыстоўваць, напрыклад, калі вы выкарыстоўваеце прыкладанне win32 x86, якое мы б паставілі:

 x86-windows-статык 

Вы можаце выкарыстоўваць і тое і іншае, але для нашага прыкладу ваш файл павінен выглядаць так:

Захавайце змены і зноў націсніце на значок «Выгляд тэчкі» і абярыце .sln у маім выпадку яго DemoStaticLinking.sln. Вось што вы ўбачыце ў выніку:

Вынік пасля націску на значок «Выгляд тэчкі»

Вам неабходна загрузіць свой праект яшчэ раз, таму левай кнопкай мышы на першым элеменце выберыце «Загрузіць усе праекты» і націсніце «Так», пакуль вы не вернецеся да асноўнага праекта.

Апошні крок - змяніць наша асяроддзе выканання на C, якое падтрымлівае статычную сувязь. Без гэтага пры спробе выкарыстоўваць свае бібліятэкі вы сутыкнецеся з памылкамі спасылак.

Націсніце на рашэнне праекта левай кнопкай мышы і выберыце ўласцівасці ўнізе альбо націсніце

Alt + Enter

Пасля таго, як з'явіцца дыялогавае акно, вы хочаце перайсці да C / C ++> Стварэнне кода:

Уласцівасці

Калі вы бачыце "Канфігурацыя: Выпуск", уверсе змяніце ўласцівасць бібліятэкі выканання на "Шматструнная (/ MT)":

Націсніце ўжываць. Затым змяніце "Configuration: Release" на "Configuration: Debug" і змяніце Бібліятэку выканання C на "Multi-thread-Debug (/ MTd)":

На гэтым мы скончылі! Цяпер мы можам выкарыстоўваць статычныя бібліятэкі vcpkg і кампіляваць іх!

У свой галоўны файл cpp (мой гэта DemoStaticLinking.cpp) дадайце наступнае:

Націсніце зялёны трохкутнік уверсе з надпісам "Лакальны адладчык Windows", каб запусціць праект, і вы павінны атрымаць гэты вывад:

Канчатковы вынік

Вы зрабілі гэта! Вы паспяхова інтэгравалі vcpkg з Visual Studio і наладзілі свой праект Visual Studio для сувязі статычных бібліятэк! Цяпер павінна быць прасцей, чым калі-небудзь, усталяваць бібліятэкі C ++ і статычна звязаць іх са сваімі праектамі. Я спадзяюся, што гэты падручнік быў карысным для ўдасканалення працэсу распрацоўкі C ++. Шчаслівае кадаванне! :)