我有以下结构:
some_folder:
--libs:
--headers:
--my_lib.h
--CMakeLists.txt
--sources:
--my_lib.cpp
--CMakeLists.txt
--CMakeLists.txt
--main.cpp
--CMakeLists.txt
some_folder/CMakeLists.txt:
cmake_minimum_required(VERSION 3.17)
project(lesson_03)
add_subdirectory(libs)
add_executable(lesson_03 main.cpp)
但是其他CMakeLists.txt文件应该包含什么呢?
不需要所有嵌套的CMakeLists,只需在主CMakeLists.txt中创建一个库目标即可:
add_library(my_lib STATIC libs/sources/my_lib.cpp)
target_include_directories(my_lib PUBLIC libs/headers)
并将您的主要可执行文件链接到它:
target_link_libraries(lesson_03 PUBLIC my_lib)
target_link_libraries
还会将include目录传播到lesson_03
,因此您不需要为它做任何特殊的操作