Ko te mea tuatahi me mahi ki te whakatutuki i ta maatau whainga teitei ko te wehewehe i te rorohiko e whakawhanakehia ana e matou ki nga poraka mo te ao, mokemoke e rite ana ki te tirohanga a te kaiwhakamahi.
I te wahanga tuatahi, i whakaahuatia taua poraka paerewa - he kaupapa me te whare pukapuka pane. Inaianei me taapiri he whare pukapuka kua whakahiato ki ta maatau kaupapa.
Ki te mahi i tenei, me tango e tatou te whakatinanatanga o te mahi myfunc i roto i te wehe .cpp-kōnae:
Katahi ka tautuhia te whare pukapuka hei whakahiato (myfeature), ka uru ki nga mea i riro mai i te taahiraa o mua .cpp-kōnae. Ko te whare pukapuka hou e tino hiahia ana ki nga upoko o naianei, a, hei whakarato i tenei, ka taea me te hono ki te kaupapa o naianei. mylib. I tua atu, ko te hononga i waenganui i a raatau he iwi whanui, ko te tikanga ko nga mea katoa ka hono atu te whaainga myfeature, ka whiwhi aunoa i te kawenga me te whaainga mylib (atu e pā ana ki ngā tikanga pūtahi).
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)
+
I muri mai, ka whakarite maatau kua whakauruhia te whare pukapuka hou ki runga i te punaha:
Me tohu mo te kaupapa myfeature, mo mylib i hangaia he ingoa ingoa me te prefix Mylib::. He rite ano te tuhi mo nga kaupapa e rua i te kaweake mo te whakaurunga ki te punaha. Ma tenei ka taea te mahi riterite me nga whaainga mo tetahi kaupapa here.
Whai muri i tenei, ko te toenga ko te hono i nga whakamatautau wae me te whare pukapuka hou (mahi myfunc tangohia mai i te taitara, na me hono koe inaianei):
Pane (Mylib::mylib) i tenei wa kaore koe e hiahia ki te hono wehe, na te mea, kua whakahuahia ake nei, ka hono aunoa me te whare pukapuka (Mylib::myfeature).
A kia taapirihia etahi ahuatanga hei whakarite i nga inenga kapi ma te whai whakaaro ki te whare pukapuka hou kua tae mai:
Ka taea e koe te taapiri atu i etahi atu whare pukapuka, nga mahi whakahaere, aha atu. Kare he aha te ahua o te hononga ki a raua i roto i te kaupapa. Ko te mea nui ko ehea nga whaainga ko te atanga o ta tatou waahanga, ara, ka mau tonu.
Inaianei kei a matou nga waahanga poraka paerewa, a ka taea e matou te whakahaere i a raatau: titohia ki roto i te hanganga o nga mea uaua, te whakauru ki roto i te punaha, te hono ranei i roto i te punaha huihuinga kotahi.
Te whakaurunga ki te punaha
Ko tetahi o nga whiringa mo te whakamahi i te waahanga ko te whakauru i ta maatau waahanga ki roto i te punaha.
I muri i tera, ka hono ki tetahi atu kaupapa ma te whakamahi i te whakahau find_package.
find_package(Mylib 1.0 REQUIRED)
Hononga hei kōwaeroto
Ko tetahi atu whiringa ko te hono i te kōpaki me to maatau kaupapa ki tetahi atu kaupapa hei waahanga iti ma te whakamahi i te whakahau add_subdirectory.
Whakamahia
He rereke nga tikanga here, engari he rite tonu te hua. I roto i nga take e rua, ka watea nga whainga i roto i te kaupapa ma te whakamahi i ta maatau waahanga Mylib::myfeature и Mylib::mylib, ka taea te whakamahi, hei tauira, penei:
I roto i ta maatau take, ko te whare pukapuka Mylib::myfeature me hono i te wa e tika ana ki te hono ki te whare pukapuka libmyfeature. Mena he nui nga pane, he pai te whakamahi i te whare pukapuka Mylib::mylib.
Ka taea e nga whaainga CMake te tinihanga, hei tauira, ko te tuku noa i etahi taonga, whakawhirinaki, aha atu. I te wa ano, ko te mahi tahi me ratou ka rite tonu.