目录
1.添加静态库
add_library()函数用于从一些源文件创建一个库。
add_libary(hello_library STATIC
src/hello.c)
这将用于创建一个名为 libhello_library.a 的静态库,其中包含 add_library 调用中的源。
NOTE:直接将源文件传递给add_library调用。
2.添加头文件目录
使用target_include_directories()函数将目录包含在库中,并将范围设置为PUBLIC。
target_include_directories(hello_library
PUBLIC
${PROJECT_SOURCE_DIR}/include
)
头文件将在以下地方使用:
-
编译库的时候
-
编译其他链接库的时候
范围的含义:
-
PRIVATE - 头文件目录被添加到目标的包含目录中
-
INTERFACE - 该目录被添加到链接该库的任何目标的头文件中(外部使用),源文件自己不包含
-
PUBLIC - 它包含在此库以及链接此库的任何目标中
3.链接库
创建可执行文件时,告诉要链接的库。使用target_link_libraries()函数来完成。
add_executable(hello_binary
src/main.c)
target_link_libraries(hello_binary
private
hello_library
)
告诉 CMake 在链接期间将 hello_library 链接到 hello_binary 可执行文件。它还将从链接库目标传播具有 PUBLIC 或 INTERFACE 范围的任何包含目录。
翻译自:
cmake-examples/01-basic/C-static-library at master · ttroy50/cmake-examples · GitHub