CMAKE 的各种修饰标签
目标属性修饰词
适用
- target_include_directories:为目标设置包含目录。
- target_link_libraries:为目标添加库依赖和链接选项。
- target_compile_definitions:为目标添加预处理器定义。
- target_compile_options:为目标添加编译选项。
- target_sources:为目标添加源文件。
- add_library:定义库目标时可用 INTERFACE,并不是目标属性修饰词,仅仅重名。
可用标签
- PRIVATE:属性只在当前目标内使用。
- PUBLIC:属性在当前目标及其依赖目标内都需要使用。
- INTERFACE:属性只在依赖目标内需要使用,而不在当前目标内使用。
静态和动态库修饰词
适用
- add_library:定义库目标
可用标签
- STATIC:创建一个静态库。静态库在链接时会将所有代码打包到可执行文件中。
- SHARED:创建一个动态库。动态库在运行时会被动态加载。
- MODULE:创建一个模块库。模块库通常用于插件系统,不会被链到其他目标上。
- INTERFACE:创建一个接口库。接口库不包含实际的实现代码,而是用于传播包含目录、编译选项等接口属性。