Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengurus Kebergantungan dengan Berkesan dalam CMake: Panduan untuk Ketergantungan Tempatan, Sasaran Perpustakaan dan Struktur Projek?
Pengurusan Ketergantungan dalam CMake: Source, Library dan CMakeLists.txt
Dalam CMake, menguruskan kebergantungan antara fail sumber, perpustakaan dan CMakeLists .txt memastikan projek yang tersusun dengan baik dan cekap. Artikel ini meneroka strategi untuk mengendalikan kebergantungan secara berkesan dalam projek kompleks yang melibatkan berbilang perpustakaan dan boleh laku.
Ketergantungan Tempatan: Satu Kelebihan
Menyediakan kebergantungan setempat memudahkan pengurusan kebergantungan dengan menentukan kebergantungan pada peringkat sumber dan pautan dalam setiap subdirektori CMakeLists.txt. Pendekatan ini menyediakan hierarki yang jelas dan mengelakkan kembung perut yang tidak perlu dengan mengecualikan kebergantungan yang tidak berkaitan.
Contoh Struktur Projek dan CMakeLists.txt
Pertimbangkan projek dengan perpustakaan yang saling berkaitan dan boleh dilaksanakan:
Lib - LibA - CMakeLists.txt - Src - a.cc - Inc - a.h - LibB - CMakeLists.txt - Src - b.cc - Inc - b.h - LibC - CMakeLists.txt - Src - c.cc - Inc - c.h App1 - CMakeLists.txt - Src - main.cc
Library CMakeLists.txt (LibA, LibB, LibC)
include_directories(Inc ../LibC/Inc) add_subdirectory(../LibC LibC) add_library(LibA Src/a.cc Inc/a.h) target_link_libraries(LibA LibC) include_directories(Inc) add_library(LibB Src/b.cc Inc/b.h) include_directories(Inc ../LibB/Inc) add_subdirectory(../LibB LibB) add_library(LibC Src/c.cc Inc/c.h) target_link_libraries(LibC LibB)
App1 CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(App1 CXX) file(WRITE "Src/main.cc" "#include \"a.h\"\n#include \"b.h\"\nint main()\n{\na();\nb();\nreturn 0;\n}") ... include_directories(../Lib/LibA/Inc ../Lib/LibB/Inc) add_subdirectory(../Lib/LibA LibA) add_subdirectory(../Lib/LibB LibB) add_executable(App1 Src/main.cc) target_link_libraries(App1 LibA LibB)
Graf Ketergantungan Perpustakaan
Graf kebergantungan untuk projek ini: App1 -> LibA -> LibC -> LibB App1 -> LibB
Strategi untuk Menguruskan Berbilang Kebergantungan
Beberapa pendekatan wujud untuk mengurus berbilang kebergantungan:
Amalan Terbaik
Atas ialah kandungan terperinci Bagaimana untuk Mengurus Kebergantungan dengan Berkesan dalam CMake: Panduan untuk Ketergantungan Tempatan, Sasaran Perpustakaan dan Struktur Projek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!