Ihe mbụ anyị kwesịrị ime iji nweta ebumnobi anyị dị elu bụ ikesa ngwa ngwa anyị mepụtara ka ọ bụrụ ihe mgbochi zuru ụwa ọnụ, nke dịpụrụ adịpụ nke edobere n'anya onye ọrụ.
N'akụkụ nke mbụ, a kọwara ngọngọ ọkọlọtọ dị otú ahụ - oru ngo nwere ọbá akwụkwọ nkụnye eji isi mee. Ugbu a, ka anyị tinye ọbá akwụkwọ achịkọtara na ọrụ anyị.
Iji mee nke a, ka anyị wepụta mmejuputa ọrụ ahụ myfunc na iche .cpp- faịlụ:
Mgbe ahụ anyị kọwapụtara ọbá akwụkwọ a ga-achịkọta (myfeature), nke ga-agụnye ihe e nwetara na nzọụkwụ gara aga .cpp- faịlụ. Ọbá akwụkwọ ọhụrụ ahụ doro anya na-achọ ndị nkụnye eji isi mee, na iji nye nke a, ọ nwere ike ma kwesịkwa ejikọta ya na ebumnuche dị adị. mylib. Ọzọkwa, njikọ dị n'etiti ha bụ ọha na eze, nke pụtara na ihe niile a ga-ejikọta ya myfeature, ga-enweta ibu na ebumnobi na-akpaghị aka mylib (ọzọ banyere ụzọ knitting).
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 108045c..0de77b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,6 +64,17 @@ target_compile_features(mylib INTERFACE cxx_std_17)
add_library(Mylib::mylib ALIAS mylib)
+###################################################################################################
+##
+## Компилируемая библиотека
+##
+###################################################################################################
+
+add_library(myfeature src/mylib/myfeature.cpp)
+target_link_libraries(myfeature PUBLIC mylib)
+
+add_library(Mylib::myfeature ALIAS myfeature)
+
Ọzọ, anyị ga-agba mbọ hụ na etinyekwara ọbá akwụkwọ ọhụrụ ahụ na sistemụ:
Ekwesiri iburu n'uche na maka ebumnuche myfeature, maka mylib emepụtara utu aha nwere prefix Mylib::. Edere otu ihe ahụ maka ebumnuche abụọ ahụ mgbe ị na-ebupụ ha maka ntinye na sistemụ. Nke a na-eme ka o kwe omume ịrụ ọrụ n'otu n'otu na ihe mgbaru ọsọ maka nke ọ bụla atụmatụ njikọ.
Mgbe nke a gasịrị, naanị ihe fọdụrụ bụ ijikọ ule otu na ọba akwụkwọ ọhụrụ (ọrụ myfunc ewepụrụ na aha ahụ, yabụ ugbu a ịkwesịrị ijikọ):
Isi okwu (Mylib::mylib) ugbu a, ọ dịghị mkpa ka ị jikọọ iche iche, n'ihi na, dị ka e kwuru na mbụ, ha na-akpaghị aka jikọọ na ụlọ akwụkwọ (ọbá akwụkwọ).Mylib::myfeature).
Ka anyị tinyekwa nuances ole na ole iji hụ na nha mkpuchi na-eburu n'uche n'ọbá akwụkwọ ahụ bịarutere ọhụrụ:
Ị nwere ike itinyekwu ọba akwụkwọ, ndị executable, wdg. Ọ baghị uru ka esi ejikọta ha na ibe ha n'ime ọrụ ahụ. Naanị ihe dị mkpa bụ ebumnuche bụ interface nke modul anyị, ya bụ, ha na-apụ apụ.
Ugbu a, anyị nwere modul ngọngọ ọkọlọtọ, anyị nwere ike ịchịkwa ha: depụta ha n'ime usoro nke mgbagwoju anya ọ bụla, tinye ha n'ime usoro ma ọ bụ jikọta ha ọnụ n'ime otu usoro mgbakọ.
Nwụnye n'ime usoro
Otu nhọrọ maka iji modul bụ ịwụnye modul anyị n'ime usoro.
Mgbe nke ahụ gasịrị, a na-ejikọta ya na ọrụ ọ bụla ọzọ site na iji iwu ahụ find_package.
find_package(Mylib 1.0 REQUIRED)
Njikọ dị ka submodule
Nhọrọ ọzọ bụ ijikọ folda na ọrụ anyị na ọrụ ọzọ dị ka submodule site na iji iwu ahụ add_subdirectory.
Jiri
Ụzọ ejikọ dị iche iche, mana nsonaazụ ya bụ otu. N'okwu abụọ ahụ, ihe mgbaru ọsọ ga-adị na ọrụ ahụ site na iji modul anyị Mylib::myfeature и Mylib::mylib, nke enwere ike iji, dịka ọmụmaatụ, dịka nke a:
Kpọmkwem n'ọnọdụ anyị, ọbá akwụkwọ Mylib::myfeature kwesịrị ijikọ mgbe ọ dị mkpa ijikọ na ụlọ akwụkwọ libmyfeature. Ọ bụrụ na enwere nkụnye eji isi mee, mgbe ahụ ọ bara uru iji ụlọ akwụkwọ ahụ Mylib::mylib.
Ebumnuche CMake nwere ike ịghọ aghụghọ, dịka ọmụmaatụ, ezubere naanị ibuga ụfọdụ akụrụngwa, ndabere, wdg. N'otu oge ahụ, ịrụ ọrụ na ha na-eme n'otu ụzọ ahụ.