网站服务器和网站备案建设部网站 造价
2026/1/15 7:49:23 网站建设 项目流程
网站服务器和网站备案,建设部网站 造价,vps做网站用什么系统,专门做网站的软件是文章目录1. 含义说明2. 示例dep/CMakeLists.txtmylib/CMakeLists.txt#xff08;关键部分#xff09;在 CMake 中#xff0c;target_link_libraries() 函数用于指定目标#xff08;如可执行文件或库#xff09;的链接依赖。其中可以使用 PUBLIC、PRIVATE 和 INTERFACE 三种…文章目录1. 含义说明2. 示例dep/CMakeLists.txtmylib/CMakeLists.txt关键部分在 CMake 中target_link_libraries()函数用于指定目标如可执行文件或库的链接依赖。其中可以使用PUBLIC、PRIVATE和INTERFACE三种可见性说明符visibility specifiers它们主要在构建库library目标时影响依赖的传递行为。下面分别说明其含义并辅以示例。1. 含义说明假设你有一个库MyLib它依赖于另一个库DepLib而你的可执行程序MyApp又链接了MyLib。此时PRIVATE DepLib表示DepLib仅在MyLib内部使用调用者如MyApp不需要知道也不应依赖DepLib。DepLib不会传递给链接MyLib的目标。PUBLIC DepLib表示DepLib既是MyLib的依赖也是其接口的一部分。调用者如MyApp在链接MyLib时会自动继承对DepLib的依赖包括头文件路径、编译定义等如果DepLib是通过target_include_directories等设置的。INTERFACE DepLib表示DepLib不是MyLib自己需要的而是提供给使用者的。MyLib本身不链接DepLib但任何链接MyLib的目标都会继承这个依赖。通常用于头文件库header-only library。注意这些说明符只对库目标STATIC/SHARED/OBJECT/INTERFACE有意义。对于可执行文件executablePUBLIC和INTERFACE行为类似于PRIVATE因为可执行文件没有“使用者”。2. 示例假设有如下项目结构project/ ├── CMakeLists.txt ├── mylib/ │ ├── CMakeLists.txt │ ├── include/mylib.h │ └── src/mylib.cpp ├── dep/ │ ├── CMakeLists.txt │ ├── include/dep.h │ └── src/dep.cpp └── app/ ├── CMakeList.txt └── main.cppdep/CMakeLists.txtadd_library(dep src/dep.cpp) target_include_directories(dep PUBLIC include)mylib/CMakeLists.txt关键部分add_library(mylib src/mylib.cpp) target_include_directories(mylib PUBLIC include) # 情况1PRIVATE target_link_libraries(mylib PRIVATE dep) # 情况2PUBLIC # target_link_libraries(mylib PUBLIC dep) # 情况3INTERFACE此时 mylib 可能是 header-only # add_library(mylib INTERFACE) # target_link_libraries(mylib INTERFACE dep)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询