如何从位于不同文件夹中的头文件和源文件构建库



我有以下结构:

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,因此您不需要为它做任何特殊的操作

最新更新