Друкарня від 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/

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

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

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

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

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

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

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

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

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

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

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

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

71Прочитань
1Автори
2Читачі
На Друкарні з 5 червня

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

  • Встановлення Linux для новачків

    Якщо ви це читаєте, ви явно хочете поставити Linux та поринути в нього. Сьогодні ми покажемо як встановити Linux, який дистрибутив обрати для початку, і покажемо налаштування, котрі можуть вам знадобитися

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

    Linuxmint
  • 5 уроків, які я виніс з 2 півотів на Scrimmage

    Коли ви робите інвестиції, кожен ваш грошовий рух вимірюється і перевіряється, але коли ви робите ставки на спорт, ви покладаєтеся тільки на своє внутрішнє чуття, чому так? Чому б нам не змінити це і не дати кожному гравцю на спортивних ставках силу інвестора?

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

    Стартап
  • Розробка примітивного месенджера на Python за допомогою бібліотеки socket

    У цій статті ми покажемо вам, як використовувати бібліотеку сокет у Python для створення примітивного месенджера. Ми розглянемо як клієнтську, так і серверну частину коду та покажемо, як вони взаємодіють між собою для обміну повідомленнями у режимі реального часу.

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

    Програмування

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

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

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

  • Встановлення Linux для новачків

    Якщо ви це читаєте, ви явно хочете поставити Linux та поринути в нього. Сьогодні ми покажемо як встановити Linux, який дистрибутив обрати для початку, і покажемо налаштування, котрі можуть вам знадобитися

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

    Linuxmint
  • 5 уроків, які я виніс з 2 півотів на Scrimmage

    Коли ви робите інвестиції, кожен ваш грошовий рух вимірюється і перевіряється, але коли ви робите ставки на спорт, ви покладаєтеся тільки на своє внутрішнє чуття, чому так? Чому б нам не змінити це і не дати кожному гравцю на спортивних ставках силу інвестора?

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

    Стартап
  • Розробка примітивного месенджера на Python за допомогою бібліотеки socket

    У цій статті ми покажемо вам, як використовувати бібліотеку сокет у Python для створення примітивного месенджера. Ми розглянемо як клієнтську, так і серверну частину коду та покажемо, як вони взаємодіють між собою для обміну повідомленнями у режимі реального часу.

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

    Програмування