cmake:target_** 中的 PUBLIC,PRIVATE,INTERFACE
1. 指令说明
target_include_directories() :指定 目标 包含的头文件路径。 官方文档
target_link_libraries() :指定 目标 链接的库。 官方文档
target_compile_options() :指定 目标 的编译选项。 官方文档
目标 由 add_library() 或 add_executable() 生成。
这三个指令类似,这里以 target_include_directories() 为例进行讲解。
2. 指令讲解
测试工程目录结构:
cmake-test/ 工程主目录,main.c 调用 libhello-world.so
├── CMakeLists.txt
├── hello-world 生成 libhello-world.so,调用 libhello.so 和 libworld.so
│ ├── CMakeLists.txt
│ ├── hello 生成 libhello.so
│ │ ├── CMakeLists.txt
│ │ ├── hello.c
│ │ └── hello.h libhello.so 对外的头文件
│ ├── hello_world.c
│ ├── hello_world.h libhello-world.so 对外的头文件
│ └── world 生成 libworld.so
│ ├── CMakeLists.txt
│ ├── world.c
│ └── world.h libworld.so 对外的头文件
└── main.c
调用关系:
├────libhello.so
可执行文件────libhello-world.so