target_include_directories(hello_library
PUBLIC
${PROJECT_SOURCE_DIR}/include
)
target_link_libraries( hello_binary
PRIVATE
hello_library
)
PRIVATE - 被添加到目標(庫)的包含路徑中。
INTERFACE - 沒有被添加到目標(庫)的包含路徑中,而是添加到了鏈接這個庫的其他目標(庫或者可執行程序)包含路徑中
PUBLIC - 既被添加到目標(庫)的包含路徑中,同時添加到了鏈接這個庫的其他目標(庫或者可執行程序)的包含路徑中
簡單來說,不考慮文件大小,重復引用,全部用PUBLIC就完事了。
add_library命令如果沒有可添加的執行文件,只能用INTERFACE來修飾
add_library(${PROJECT_NAME} INTERFACE)