Cmake-3
Cmake 3大關鍵詞
3大關鍵詞是private,interface和public
1)private
是私有的,hello-world中頭文件不會includehello的頭文件,也不會使用hello源文件的方法。
target_link_libraries(hello-world PRIVATE hello) // hello-world 表示可執行文件目標
target_include_directories(hello-world PRIVATE hello)
2)interface
生成 libhello-world.so 時,只在libhello-world.so?對外的頭文件——hello_world.h 中包含 了 hello.h, hello_world.c 中不包含 hello.h,即 libhello-world.so 不使用 libhello.so 提供的功能,只使用 hello.h 中的某些信息,比如結構體。但是 main.c 需要使用 libhello.so 中的功能
target_link_libraries(hello-world INTERFACE hello)
target_include_directories(hello-world INTERFACE hello)
3)public
公開的
PUBLIC = PRIVATE + INTERFACE。生成 libhello-world.so 時,在 hello_world.c 和 hello_world.h 中都包含了 hello.h。并且 main.c 中也需要使用 libhello.so 提供的功能
target_link_libraries(hello-world PUBLIC hello)
target_include_directories(hello-world PUBLIC hello)
?
總結