Друкарня від WE.UA

Як збирати С++ бібліотеки з CMAKE

Навіщо взагалі їх збирати?

До прикладу, візьмемо відому графічну бібліотеку SFML. Вона поширено використовується інді-розробниками ігор та добре підходить для новачків.

Якщо ми перейдемо на офіційний сайт, то побачимо вже готові варіанти бібліотеки.

https://www.sfml-dev.org/download/sfml/2.5.1/

Як бачимо, збірка для Visual Studio 17 2022 відсутня. Часто розробники бібліотек не встигають збирати їх під наші потреби. Тому зробимо це самі.

Що для цього потрібно?

Насамперед, нам потрібна IDE та компілятор С++. Не має значення який саме, але в моєму випадку це Visual Studio 17 2022.

Спершу, треба завантажити й встановити сам CMAKE.

https://cmake.org/download/

Потім потрібно завантажити сирцевий код SFML (або іншої бібліотеки). Найчастіше його публікують на github сторінці.

https://github.com/SFML/SFML


Також треба знайти CMakeLists.txt в сирцевому коді. Цей файл є обов’язковим для збірки бібліотеки через CMAKE.

CMakeLists.txt в теці сирцевого коду SFML

Тепер треба запустити CMAKE (cmake-gui).

  • В першому полі вказуємо шлях до теки з файлом CMakeLists.txt в сирцях SFML. Він може зустрічатись неодноразово, але нам потрібен той, який “лежить” найвище.

  • В другому полі вказуємо шлях до нової теки, куди CMAKE буде генерувати сценарій збірки.

  • Натискаємо Configure.

З’являється вікно, в якому нам треба вибрати вашу IDE. У мене Visual Studio 17 2022. Інше не чіпаємо, тиснемо Finish.

Потім, після конфігурації проекту, натисніть Generate. В кінці не треба лякатись червоних полів, це нормально.

Потім просто натискаєте Open Project.

Коли IDE відкриє проект, нам треба буде просто натиснути кнопку запуску(збірки), так само як ми запускаємо(збираємо) свій власний код. Ще ми можете переключити debug на release, або зібрати бібліотеку під x32.

P.S. Якщо ви це робите через Visual Studio, то вірогідно отримаєте помилку Unable to start program. Її можна ігнорувати, бо IDE просто намагалась запустити бібліотеку як .exe програму.

Ось і все! Тепер ми можемо використовувати цю щойно зібрану бібліотеку в наших власних проектах. Файли .lib та .dll розташовані в теці зібраного проекту. Файли include знаходяться в теці сирцевого коду бібліотеки.

SFML-build/bin/Debug/
SFML-build/lib/Debug/

Статті про вітчизняний бізнес та цікавих людей:

  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

    Теми цього довгочиту:

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

    Теми цього довгочиту:

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

    Теми цього довгочиту:

    Iphone
  • Як подолати жіночу безплідність за допомогою донорських яйцеклітин

    Діагноз "безпліддя" рідко звучить як вирок одразу. Для багатьох жінок саме в цей момент вперше звучить словосполучення "донорські яйцеклітини" — і це часто не кінець шляху до материнства, а якраз новий, реальний шанс.

    Теми цього довгочиту:

    Донорство
  • Як заспокоїти зубний біль і чому самолікування може призвести до операції?

    Раптовий біль у зубі може призвести до порушення сну та ускладненого вживання їжі. Люди часто приймають таблетки, роблять полоскання або лікуються народними засобами. В таких випадках не варто відкладати візит до стоматолога, адже можуть з’явитись ускладнення.

    Теми цього довгочиту:

    Стоматологія
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Нотатки з програмування
Нотатки з програмування@tech

1Довгочити
77Перегляди
2Підписники
На Друкарні з 5 червня 2023

Це також може зацікавити:

Коментарі (1)

Чудова стаття. Помилка “Unable to start program“ стається через те, що після натискання зеленої кнопки, або CTRL+F5 чи F5, віжла буде компілювати всі проєкти у солюшині, а після — запускати як .exe-файл той проєкт, який помічений як “Startup Project“. Насправді достатньо натиснути CTRL+SHIFT+B, або Build → Build Solution, тоді всі проєкти солюшина будуть просто білдитись і помилки не буде )

Це також може зацікавити: