ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² clion
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ MPI Π² CLion
ΠΡΠΈΠ²Π΅Ρ Β«ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΒ», ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ MPICH Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΡΠΎΠ»Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ IDE CLion ΠΎΡ JetBrains. ΠΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΡΠΆΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ MPI Π² ΡΠΈΡΡΠ΅ΠΌΡ Linux, ΠΈ Π·Π°ΡΡΠΎΠ½ΡΠ» ΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ MPI Π² Eclipse.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΠΊΠ°, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π² CLion Π½Π΅ΡΡΠ°Π²Π½ΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π² Eclipse. CLion ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρ Π²ΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ IDE, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π±Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ, ΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠΉΡΠ΅. Π‘Π°ΠΌ Ρ Π±Π΅Π΄Π½ΡΠΉ ΡΡΡΠ΄Π΅Π½Ρ Π§Π΅Π»ΠΠ£ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΈΡΠ»ΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ°Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ°. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ JetBrains Π·Π° ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ!
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ MPI Π² CLion
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ CMake. ΠΠΎΡ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ CMakeLists.txt Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΡΠΎΠ²ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ CLion Π·Π½Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MPI, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΌΠ΅Π΅Ρ ΠΈΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ.
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ MPICC(MPIC++) Π² 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 ($
>> link_directories ($
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
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ
ΠΠ·-Π·Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Lombok’s @Accessors (chain = true) ΠΊΠ»Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ bean-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅Π‘Π΅ΡΡ Time Novel wap.youxs.org ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π±ΡΠ» ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎLombok Π― ΠΏΡΠΈΠ²ΡΠΊ, Π½ΠΎ ΡΠ°Π½ΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ[email protected]οΌ@AllArgsConstructorοΌ@EqualsAndHashCodeΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½.
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 «$
2 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΏΡΠΎΠ²Π΅Π΄Ρ Π²Π΅ΡΡ Π΄Π΅Π½Ρ Π½Π°Π΄ ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, Ρ ΡΠ΅ΡΠΈΠ» Π΅Π³ΠΎ ΡΠ°ΠΌ. ΠΡΠΎ Π±ΡΠ»Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π³Π»ΡΠΏΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈ Π²ΡΠ΅ Π½Π°ΠΌΠ΅ΠΊΠΈ Π² ΠΎΡΠ²Π΅ΡΠ΅ @Waxo Π±ΡΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ.
ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ (ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ) Π²ΠΊΠ»ΡΡΠΈΡΡ boost Π½Π° :
ΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠ°Π³ΠΈΡ Π·Π΄Π΅ΡΡ. ΠΠ»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ, Π²ΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ CMakeLists.txt ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CMake find_package (Boost)
ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΡΡΠ΅, ΠΈ CMake ΡΠ΄Π΅Π»Π°Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ CMake.
Edit:
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ boost Ρ Π²Π°ΡΠ΅ΠΉ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠΉ.
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ Π² CLion ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Qt5 ΡΠ΅ΡΠ΅Π· CMake?
ΠΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ:
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΉ ΠΏΡΡΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ shared-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΡΠ΅ΠΉΠ»ΠΈΡΡΡ. ΠΡΠΎΠ±ΠΎΠ²Π°Π» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΡ Π²ΡΠ΄Π°ΡΡ ΡΠ°ΠΌ cmake Π΅ΡΡ Π΄ΠΎ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Qt5 ΡΠ΅ΡΠ΅Π· cmake?
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ QtC ΠΈ qmake? Π‘Π‘ΠΠ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π΄Π΅ΡΡ, ΠΎΠ½ Π±Π΅ΡΡΡ CMake-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ Qt. ΠΠ»ΠΈ ΠΈΠ· Π΄ΠΈΡΡΡΠ°, Π³Π΄Π΅ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Qt ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ.
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CLion, ΡΠΆ Π±ΠΎΠ»ΡΠ½ΠΎ Π½ΡΠ°Π²ΡΡΡΡ ΠΌΠ½Π΅ IDEΡΠΊΠΈ ΠΎΡ JetBrains.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π΄Π΅ΡΡ, ΠΎΠ½ Π±Π΅ΡΡΡ CMake-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ Qt. ΠΠ»ΠΈ ΠΈΠ· Π΄ΠΈΡΡΡΠ°, Π³Π΄Π΅ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Qt ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ.
ΠΡ ΡΠ°ΠΊ Π²ΠΎΠ·ΡΠΌΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΠΌ Ρ ΡΠ΅Π±Ρ ΡΠ΅ΠΏΠ»ΡΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ Π»ΠΈΠ±Ρ Π»ΠΈΠ½ΠΊΡΡΡΡΡ.
Π΄ΠΈΡΡΡ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π°ΡΡ
ΠΠ° Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π΅ ΡΠ΅ΠΏΠ»ΡΡΡΡΡ, ΠΏΡΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ½Π°Π΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΠ°ΠΊ:
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)
ΠΡΡΠ°ΡΠΈ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π±Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ°?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° ΡΠ΅Π±Π΅ Π½Π΅ Π½ΡΠΆΠ½Π°, CMake ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Ρ RPATH ΠΈ CLion ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Qt Π² Π΅Ρ ΠΆΠ΅ CMake-ΡΠΊΡΠΈΠΏΡΠ°Ρ Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ»Π° ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΠ°ΠΊ ΠΈ Π½Π΅ Π΄ΠΎΠ΄Π΅Π»Π°Π½Π°.
Π ΡΡΠΎ ΡΠΊΠΎΡΠΌΠΈΡΡ Π²ΡΡΡΠ½ΡΡ QT_INCLUDE_DIR ΠΈ QT_LIBRARY_DIR cmake’Ρ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ?