Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Настройка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPI Π² CLion

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Β«ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ программистам», ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MPICH Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ сСгодня Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ столС Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ IDE CLion ΠΎΡ‚ JetBrains. Π”ΠΎ этого я ΡƒΠΆΠ΅ рассказывал ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MPI Π² систСму Linux, ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ» Ρ‚Π΅ΠΌΡƒ настройки MPI Π² Eclipse.

НСобходимо сразу ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сСйчас Π±ΡƒΠ΄Π΅Ρ‚ сказка, настройка Π² CLion нСсравнимо ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Π² Eclipse. CLion сам ΠΏΠΎ сСбС Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρƒ Π²Ρ‹ΡˆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… IDE, поэтому Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сСбС Π΅Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ позволяйтС. Π‘Π°ΠΌ я Π±Π΅Π΄Π½Ρ‹ΠΉ студСнт Π§Π΅Π»Π“Π£ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ для студСнтов, которая Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Ρ‡ΠΈΡΠ»ΡŽΡΡŒ Π² списках унивСрситСта. Бпасибо JetBrains Π·Π° Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ!

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ MPI Π² CLion

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настроСк CMake. Π’ΠΎΡ‚, ΠΊΠ°ΠΊ выглядит CMakeLists.txt вновь созданного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Π“ΠΎΡ‚ΠΎΠ²ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ CLion Π·Π½Π°Π΅Ρ‚ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ MPI, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡ… ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ компилятор MPICC(MPIC++) Π² CLion

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, послС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ пСрСустановки систСмы, ΠΌΠ½ΠΎΠΉ Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с настройкой

cmake_minimum_required(VERSION 3.6)

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π”Π΅Π»ΠΎ сдСлано, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° MPI Π² чудСсной CLion. А Π²ΠΎΠΎΠ±Ρ‰Π΅, CMake ΠΎΡ‡Π΅Π½ΡŒ крутая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΡˆΡ‚ΡƒΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ я посвящу Π΅ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ запись со всСми подробностями. А Π½Π° сСгодня Ρƒ мСня всС, спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Clion ΠΈ SFML

ВступлСниС

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, это ΡΡ‚Π°Ρ‚ΡŒΡ посвящСна установкС ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SFML ΠΊ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Clion Π² Linux Ubuntu. Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это способ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах linux, Π½ΠΎ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ubuntu Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽ Π½Π° 90 %.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π― Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Ρ‡Ρ‚ΠΎ Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… людСй Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ трудности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ sfml Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Clion, Π½ΠΎ ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ срСдам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Visual Studio. Π­Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ количСству запросов Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² Π½Π° youtube. Π’ частности это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ связанны с cmake.

Установка

Π˜Ρ‚Π°ΠΊ приступим. Для Π½Π°Ρ‡Π°Π»Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта sfml, ΠΏΠΎ установкС Π½Π° Ubuntu.

Π—Π°Π±Ρ‹Π» ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‡Ρ‚ΠΎ способ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с sfml 2.5 ΠΈ Π²Ρ‹ΡˆΠ΅. Для Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ вставляСм Ρ‚ΡƒΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

для установки sfml ΠΏΠΎ стандартному ΠΏΡƒΡ‚ΠΈ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ваш clion ΠΈ создаСм Π½ΠΎΠ²Ρ‹ΠΉ c++ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ПослС созданиС ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» β€” CmakeList.txt.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ ваш CmakeList.txt выглядит Ρ‚Π°ΠΊ.

ΠœΡ‹ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ.

Π’ строкС find_package() ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ sfml ΠΏΠΎ стандартному ΠΏΡƒΡ‚ΠΈ. Π’ строкС target_link_libraries() ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ sfml, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: sfml-network.

Π’ΠΎΠ³Π΄Π° это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: target_link_libraries(ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ sfml-graphics sfml-audio sfml-network).

Запуск!

ВсС Π³ΠΎΡ‚ΠΎΠ² обновляСм ваш CmakeList.txt. ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ.
ВставляСм Π² ваш Ρ„Π°ΠΉΠ» с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ main тСстовый ΠΊΠΎΠ΄ с сайта sfml.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вашими sfml ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ clion.Или Π΄Ρ€ΡƒΠ³ΠΎΠΉ срСды ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ build β€” систСму cmake.

Для написаниС ΡΡ‚Π°Ρ‚ΡŒΡ использовалась ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ информация: ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт SFML.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РусскиС Π‘Π»ΠΎΠ³ΠΈ

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CMake для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² CLion

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CMake

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ CMake Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ CMakeLists.txt. Когда Ρ„Π°ΠΉΠ» CMakeLists.txt ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ccmake для настройки ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится CMakeLists.txt. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ настройки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cmake для создания ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ make-Ρ„Π°ΠΉΠ»Π° (Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ систСмС) ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΡ€ΠΈ компиляции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ инструмСнта программирования ΠΏΠΎΠ΄ ΠΎΠΊΠ½ΠΎΠΌ).

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ CMake ΠΎΡ‡Π΅Π½ΡŒ простоС. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» CMakeLists.txt. НиТС приводится ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π° CMakeLists.txt с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» CMakeLists.txt.

Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CMakeLists.txt

Вторая строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сгСнСрированный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ называСтся test_math.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4 опрСдСляСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 8 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ исходного Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ src ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния DIR_SRCS.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 10 устанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды TEST_MATH Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды DIR_SRCS, здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды для присвоСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ срСды.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 14 Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды LIBRARIES. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π° имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно ΠΏΠΎΠ·ΠΆΠ΅.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ CMakeLists.txt Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ CMakeLists.txt

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ», Ρ„Π°ΠΉΠ» bin Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ / bin, ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, соотвСтствуСт Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ.

1. ОсновноС использованиС

Установка: ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ сразу Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅: cmake dir_path, сгСнСрируйтС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ makefile

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, концСпция

out-of-sourceΠ‘Π±ΠΎΡ€ΠΊΠ°, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ сборки ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ скомпилированных Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ исходных Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…;

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, основная структура

1. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ΡΡŒ Π½Π° Ρ„Π°ΠΉΠ» CMakeLists.txt, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² основной ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³;

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² CMakeLists.txt ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, add_subdirectory, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ

3. ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ CMakeLists.txt унаслСдуСт настройки Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° CMakeLists.txt (ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅).

4. Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ°

4. set (var a; b; c) set (var a b c) #define variable var ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ a; b; c Ρ‚Π°ΠΊΠΎΠΉ список строк

6. УсловноС заявлСниС:

8. ЗаявлСниС ΠΎ ΠΏΠ΅Ρ‚Π»Π΅

V. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

CMAKE_C_COMPILER: Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ компилятор C

CMAKE_CXX_COMPILER:

EXECUTABLE_OUTPUT_PATH: ΠŸΡƒΡ‚ΡŒ хранСния исполняСмого Ρ„Π°ΠΉΠ»Π°

LIBRARY_OUTPUT_PATH: ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

BUILD_SHARED_LIBS:Switch between shared and static libraries

ИспользованиС встроСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

>> Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π² CMakeLists.txt, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ set

Π’-ΡˆΠ΅ΡΡ‚Ρ‹Ρ…, порядок

project(ΠŸΠ Π˜Π’Π•Π’) # Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сгСнСрированного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π’Πš;

>> include_directories ($ / Hello) # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Hello, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

>> link_directories ($ / Hello) # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Hello ΠΊΠ°ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ссылок

add_subdirectory: Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ

>> add_executable (helloDemo demo.cxx demo_b.cxx) # Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ cxx Π² исполняСмый Ρ„Π°ΠΉΠ»β€”β€”

add_definitions: Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компиляции

>> add_definitions (-DDEBUG) Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макроса DEBUG Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку gcc;

>> target_link_libraries (demo Hello) # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» ΠΈ Hello ΠΊ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ demo

add_library:

>> add_library (Hello hello.cxx) # Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ hello.cxx Π² ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как libHello.a

add_custom_target:

message( status|fatal_error, β€œmessage”):

БСмь, описаниС

8. FAQ

1) Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

2) Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡŒ компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

>> ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

3) Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ динамичСскиС ΠΈ статичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

>> Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ target_link_libraries

4) Как Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ сообщСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ CMAKE

>> ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° корпус

5) Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

>> include_directories ΠΈ link_directories

>> ΠœΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ нСсколько Ρ€Π°Π· для установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΉ

>> link_directories влияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ†Π΅Π»ΠΈ, стоящиС Π·Π° Π½ΠΈΠΌ

6) Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΡ‚ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΉ

7) Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ

НапримСрВ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ вСрсии устанавливаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ компилятора DEBUGИ измСнСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒ CMakelist.txt

>> Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ option, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

option(DEBUG_mode «ON for debug or OFF for release» ON)

>> ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ: этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сгСнСрированный make-Ρ„Π°ΠΉΠ», Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ make; для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈ выпускной вСрсий это эквивалСнтно Π΄Π²ΡƒΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ: cmake ΠΈ make edit_cache соотвСтствСнно;

8) Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ макроса компиляции

>> Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ add_definitions, см. ОписаниС Ρ€Π°Π·Π΄Π΅Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄

9) Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ зависимости компиляции

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ зависимости Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ построСны ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

10) Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

>> Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ cmake Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для создания Ρ„Π°ΠΉΠ»Π° Makefile, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Π±Ρ‹Π» сохранСн Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌ

11) Папок ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ?

>> Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CMakeList.txt Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

12) Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ cmake

13) Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ

14) Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для компиляции ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

15) Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сравнСниС строк ΠΈΠ»ΠΈ чисСл Π² прСдлоТСниях IF

>> Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ чисСл LESS, GREATER, EQUAL, сравнСниС строк STRLESS, STRGREATER, STREQUAL,

IF(AAA STREQUAL abc)

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (БВАВУБ «ΠΈΡΡ‚ΠΈΠ½Π°») # Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ истину

16) ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ cpp ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° h

17) На машинС установлСны VC7 ΠΈ VC8, CMAKE автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ поиск компилятора, Π½ΠΎ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ?

18) Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компиляции Π² зависимости ΠΎΡ‚ ОБ

>> IF( APPLE ); IF( UNIX ); IF( WIN32 )

19) ΠœΠΎΠ³ΡƒΡ‚ Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎ ΠΈ послС компиляции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ автоматичСски?

>> Π”Π°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΡŽ

20) Как Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ make

Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ рСкомСндация

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Из-Π·Π° добавлСния Lombok’s @Accessors (chain = true) класс инструмСнта копирования bean-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅Π‘Π΅Ρ‚ΡŒ Time Novel wap.youxs.org На этот Ρ€Π°Π· Π±Ρ‹Π» построСн Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎLombok Π― ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ, Π½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ пользовался[email protected],@AllArgsConstructor,@EqualsAndHashCodeΠ”ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

ios FMDB

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ FMDB? Π’ iOS использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка C для добавлСния, удалСния, измСнСния ΠΈ запроса собствСнных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… SQLite являСтся слоТным ΠΈ Ρ…Π»ΠΎΠΏΠΎΡ‚Π½Ρ‹ΠΌ, поэтому появился ряд Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, инкапсу.

POJ2236 WirelessNetWork (Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π±ΠΎΡ€)

Бсылка Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π­Ρ‚ΠΎΡ‚ вопрос прСдставляСт собой простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ поиска, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ слоТно. (НС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Accepted чувствуСт сСбя Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ….

Android бизнСс ΠΈ рСализация SDK интСрфСйс

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшнюю Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (boost) Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CLion C++ с CMake?

Ρƒ мСня Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ настройка для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ C++:

ΠΌΠΎΠΉ CMakeLists.txt Ρ„Π°ΠΉΠ» выглядит Ρ‚Π°ΠΊ:

ΠΊΠΎΠ³Π΄Π° я создаю ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

/ Users/nburk/Documents/uni/master/master_thesis/MyProject / test.cpp: 2: 10: Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Π°Ρ ошибка: Ρ„Π°ΠΉΠ» «boost» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

make[3]: * * * [CMakeFiles/MyProject.Ρ€Π΅ΠΆ/тСст.Π‘Π Π .o] Ошибка 1 make[2]: * * * [CMakeFiles/MyProject.dir/ all] Ошибка 2 make[1]: * * * [CMakeFiles/MyProject.dir/ rule] Ошибка 2 ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ: * * * [MyProject] Ошибка 2

ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ boost Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ s Π² ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CLion c++?

ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: Благодаря ΠΎΡ‚Π²Π΅Ρ‚Ρƒ @Waxo я использовал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΅ΠΌ CMakeLists.txt ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ:

я Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΡˆΠ΅Π» Π½Π΅ нашСл-ошибка, Π½ΠΎ вмСсто этого я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ошибка CMake Π² / прилоТСния / CLion Π’ΠŸ.app / содСрТаниС / bin / cmake / share / cmake-3.1 / ΠΌΠΎΠ΄ΡƒΠ»ΠΈ / FindBoost.с CMake:685 (Ρ„Π°ΠΉΠ»):

строки Ρ„Π°ΠΉΠ»Π° «/usr/мСстныС/ΠΏΠΎΠ³Ρ€Π΅Π±/ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅/1.57.0/ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅/вСрсия.Π“Π­Π‘» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½.

стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (послСднСго): CMakeLists.txt: 11 (find_package)

Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ всС Π΅Ρ‰Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚? Указанная строка (685) Π² FindBoost.с CMake это: file(STRINGS «$/boost/version.hpp» _boost_VERSION_HPP_CONTENTS REGEX «#define BOOST_(LIB_)?VERSION «)

2 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

провСдя вСсь дСнь Π½Π°Π΄ этим вопросом, я Ρ€Π΅ΡˆΠΈΠ» Π΅Π³ΠΎ сам. Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° довольно глупая ошибка, ΠΈ всС Π½Π°ΠΌΠ΅ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ @Waxo Π±Ρ‹Π»ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹.

послС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ высказываний Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ (ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-нСзависимо) Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ boost Π½Π° :

эти Π»ΠΈΠ½ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ магию здСсь. Для справки, Π²ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ CMakeLists.txt Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я использовал для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CMake find_package (Boost)

ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅, ΠΈ CMake сдСлан для пСрСкрСстной компиляции, ΠΈ прСдоставлСниС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ CMake.

Edit:

ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ связываСтС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ boost с вашСй Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΡ‹ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π² CLion статичСски Qt5 Ρ‡Π΅Ρ€Π΅Π· CMake?

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ:

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, вмСсто ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΉ ΠΏΡƒΡ‚ΠΈ пытаСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ shared-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ фСйлится. ΠŸΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ сам cmake Π΅Ρ‰Ρ‘ Π΄ΠΎ сборки.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°Ρ‚ΡŒ статичСски Qt5 Ρ‡Π΅Ρ€Π΅Π· cmake?

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ QtC ΠΈ qmake? Π‘Π‘Π—Π‘

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ здСсь, ΠΎΠ½ Π±Π΅Ρ€Ρ‘Ρ‚ CMake-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ· динамичСской сборки Qt. Или ΠΈΠ· дистра, Π³Π΄Π΅ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Qt ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ динамичСским.

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CLion, ΡƒΠΆ больно нравятся ΠΌΠ½Π΅ IDEшки ΠΎΡ‚ JetBrains.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ здСсь, ΠΎΠ½ Π±Π΅Ρ€Ρ‘Ρ‚ CMake-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ· динамичСской сборки Qt. Или ΠΈΠ· дистра, Π³Π΄Π΅ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Qt ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ динамичСским.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Ну Ρ‚Π°ΠΊ возьми ΠΈ посмотри, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‚Π°ΠΌ Ρƒ тСбя Ρ†Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ ΠΈ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ… Π»ΠΈΠ±Ρ‹ Π»ΠΈΠ½ΠΊΡƒΡŽΡ‚ΡΡ.

дистр Ссли Ρ‡Ρ‚ΠΎ Π°Ρ€Ρ‡

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Π”Π° Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π΅ Ρ†Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ, пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π—Π½Π°Π΅ΡˆΡŒ, Ссли Π½Π΅ моТСшь с этим ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ Ρ‚Π°ΠΊ:

target_link_libraries(Splines /usr/local/Qt5_static/lib/Qt5Widgets.a /usr/local/Qt5_static/lib/Qt5Gui.a /usr/local/Qt5_static/lib/Qt5Core.a)

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π·Π°Ρ‡Π΅ΠΌ Ρ‚Π΅Π±Π΅ статичСская Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ°?

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли ΡΠΎΠ±ΠΈΡ€Π°Π΅ΡˆΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° локальной машинС, Ρ‚ΠΎ статичСская Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Ρ‚Π΅Π±Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Π°, CMake ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» с RPATH ΠΈ CLion ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ запустится с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΊ соТалСнию, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° статичСской вСрсии Qt Π² Π΅Ρ‘ ΠΆΠ΅ CMake-скриптах Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оставляла ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ, скорСС всСго ΠΎΠ½Π° Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ Π΄ΠΎΠ΄Π΅Π»Π°Π½Π°.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² clion

А Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ QT_INCLUDE_DIR ΠΈ QT_LIBRARY_DIR cmake’Ρƒ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *