Portál AbcLinuxu, 6. května 2025 16:36
hello/main.c hello/CMakeLists.txt hello/kniznica/kniznica.c hello/kniznica/CMakeLists.txthello/kniznica/CMakeLists.txt obsahuje
add_library(kniznica SHARED kniznica.c)hello/CMakeLists.txt obsahuje
add_subdirectory(kniznica)a mal by tiež obsahovať
add_executable(hello main.c) target_link_libraries(hello PRIVATE kniznica)Build potom urobím:
rm -rf build mkdir build cd build cmake .. makeKvoli target_link_libraries() cmake bude vedieť, že na zbuildovanie "hello" potrebuje "kniznica" a keďže existuje target s menom kniznica, tak najprv zbuilduje ten.
hello/main.c hello/CMakeLists.txt hello/kniznica/kniznica.c hello/kniznica/CMakeLists.txt hello/kniznica/CMakeOptions.txt hello/kniznica/cmake/FindConfuse.cmake hello/kniznica/cmake/...jinak jde o tuto knihovnu, kdyby to bylo důležité
find_package()
.
Pokiaľ to ftdl ponúka tvoja distribúcia, tak by som dal do OS nainštalovať to. Tým by sa malo zariadiť, že ku knižnici sa nainštalujú aj súbory potrebné na to, aby tú knižnicu vedel nájsť cmake pri kompilovaní programov, ktoré tú knižniciu potrebujú.
Ak ftdl tvoja distribúcia neponúka, tak by som som skúsil ftdl skompilovať samostatne - asi s
cmake -DCMAKE_INSTALL_PREFIX=/usr ..; sudo make install
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.