Ny zavatra voalohany tokony hataontsika mba hanatratrarana ny tanjona ambony indrindra dia ny mizara ny logiciel novolavolainay ho blocs mitoka-monina izay mitovy amin'ny fomba fijerin'ny mpampiasa.
Ao amin'ny tapany voalohany dia nofaritana ny sakana mahazatra toy izany - tetikasa misy tranomboky misy lohateny. Andeha isika hanampy tranomboky natambatra amin'ny tetikasantsika.
Mba hanaovana izany, andeha horaisina ny fampiharana ny asa myfunc amin'ny misaraka .cpp-rakitra:
Avy eo dia mamaritra ny tranomboky hangonina (myfeature), izay ahitana ny zavatra azo tamin'ny dingana teo aloha .cpp-rakitra. Ny trano famakiam-boky vaovao dia mazava ho azy fa mitaky lohapejy efa misy, ary mba hanomezana izany dia azo atao ary tokony hifandray amin'ny tanjona efa misy. mylib. Ankoatr'izay, ny fifandraisana misy eo amin'izy ireo dia ampahibemaso, izay midika fa ny zavatra rehetra hampifandraisana ny tanjona myfeature, dia handray ho azy ny entana sy ny tanjona mylib (bebe kokoa momba ny knitting fomba).
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)
+
Manaraka, ho azo antoka fa ny tranomboky vaovao dia napetraka ao amin'ny rafitra ihany koa:
Marihina fa noho ny tanjona myfeature, raha ny amin'ny mylib natsangana ny solon'anarana misy prefix Mylib::. Toy izany koa no voasoratra ho an'ny tanjona roa rehefa manondrana azy ireo ho an'ny fametrahana amin'ny rafitra. Izany dia ahafahana miasa mitovy amin'ny tanjona na inona na inona tetika mamatotra.
Aorian'izany, ny hany sisa tavela dia ny mampifandray ny fitsapana unit amin'ny tranomboky vaovao (function myfunc nesorina tamin'ny lohateny, ka mila mampifandray ianao izao):
Lohateny (Mylib::mylib) izao dia tsy mila mifandray misaraka ianao, satria, araka ny efa voalaza, dia mifandray ho azy miaraka amin'ny tranomboky (Mylib::myfeature).
Ary ndao ampio ny nuance roa mba hiantohana ny fandrefesana fandrakofana amin'ny fiheverana ny tranomboky vao tonga:
Azonao atao ny manampy trano famakiam-boky, executables, sns. Tsy maninona na ahoana marina no ifandraisan'izy ireo ao anatin'ilay tetikasa. Ny hany zava-dehibe dia ny lasibatra amin'ny seha-pifaneraserana amin'ny module misy antsika, izany hoe mijanona izy ireo.
Aorian'izany dia mifandray amin'ny tetikasa hafa mampiasa ny baiko izy io find_package.
find_package(Mylib 1.0 REQUIRED)
Fifandraisana toy ny submodule
Safidy iray hafa dia ny mampifandray ny lahatahiry amin'ny tetikasantsika amin'ny tetikasa hafa ho submodule mampiasa ny baiko add_subdirectory.
ny fampiasana ny
Ny fomba famatorana dia samy hafa, fa ny vokatra dia mitovy. Amin'ireo tranga roa ireo, ny tanjona dia ho hita ao amin'ny tetikasa amin'ny fampiasana ny module Mylib::myfeature ΠΈ Mylib::mylib, izay azo ampiasaina, ohatra, toy izao:
Amin'ny ankapobeny, ny tranomboky Mylib::myfeature mila mifandray rehefa ilaina ny mifandray amin'ny tranomboky libmyfeature. Raha toa ka ampy ny lohapejy, dia mendrika ny mampiasa ny tranomboky Mylib::mylib.
Ny kendrena CMake dia mety ho saro-takarina, ohatra, natao handefasana fananana, fiankinan-doha, sns. Mandritra izany fotoana izany, ny fiaraha-miasa amin'izy ireo dia mitranga amin'ny fomba mitovy.