当前位置: 首页 > news >正文

广东微信网站开发哪家好wordpress 文章 时间段

广东微信网站开发哪家好,wordpress 文章 时间段,广州番禺网站公司哪家好,全国最大的源码平台target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 这条 CMake 命令用于指定编译目标(在此例中为 mylib 静态库)的头文件搜索路径。具体来说,这条命令的作用包括以下几个方面: 1. 添加包含目录 mylib&…

target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 这条 CMake 命令用于指定编译目标(在此例中为 mylib 静态库)的头文件搜索路径。具体来说,这条命令的作用包括以下几个方面:

1. 添加包含目录

  • mylib:这是目标名称,即你要为其设置包含目录的静态库。
  • PUBLIC:这是访问说明符,表示包含目录的作用范围。
  • ${CMAKE_CURRENT_SOURCE_DIR}:这是当前 CMakeLists.txt 文件所在的源代码目录路径,通常包含库的头文件。

2. 访问说明符的含义

CMake 提供了三种访问说明符:PRIVATEPUBLICINTERFACE,它们决定了包含目录对不同目标的影响范围。

  • PRIVATE

    • 只对当前目标(mylib)有效。
    • 链接到 mylib 的其他目标不会继承这些包含目录。
  • PUBLIC

    • 对当前目标和所有链接到该目标的其他目标都有效。
    • 这意味着使用 mylib 的可执行文件或其他库也会自动包含这些目录,以便找到必要的头文件。
  • INTERFACE

    • 只对链接到该目标的其他目标有效,当前目标自身不使用这些包含目录。

在你的命令中使用 PUBLIC,意味着不仅 mylib 本身在编译时会使用 ${CMAKE_CURRENT_SOURCE_DIR} 作为头文件搜索路径,而且所有链接到 mylib 的目标(如可执行文件 app)也会自动使用这个包含目录。这对于库的使用者来说非常方便,因为他们不需要手动指定库的头文件路径。

3. 实际效果

假设你的项目结构如下:

project/
├── lib/
│   ├── mylib.cpp
│   └── mylib.h
├── app/
│   ├── main.cpp
└── CMakeLists.txt
  • lib/CMakeLists.txt 中的命令:

    add_library(mylib STATIC mylib.cpp)
    target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    
  • app/CMakeLists.txt 中的命令:

    add_executable(app main.cpp)
    target_link_libraries(app PRIVATE mylib)
    

在这种设置下:

  1. 编译 mylib

    • 编译器会在 ${CMAKE_CURRENT_SOURCE_DIR}(即 lib/ 目录)中查找头文件,例如 mylib.h
  2. 编译 app

    • 因为 app 链接了 mylibmylib 的包含目录是 PUBLIC,所以 app 的编译器也会自动将 lib/ 目录添加到头文件搜索路径中。
    • 这样,app/main.cpp 中包含 #include "mylib.h" 时,编译器能够正确找到 mylib.h

4. 为什么使用 CMAKE_CURRENT_SOURCE_DIR

  • CMAKE_CURRENT_SOURCE_DIR
    • 这个变量指向当前 CMakeLists.txt 文件所在的源代码目录。
    • lib/CMakeLists.txt 中,它指向 project/lib/,确保包含目录指向包含 mylib.h 的正确路径。

使用 CMAKE_CURRENT_SOURCE_DIR 而不是相对路径或其他路径变量,可以提高 CMakeLists.txt 的可维护性和可移植性,避免在项目结构变化时出现路径错误。

5. 总结

target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 的主要作用是:

  • mylib 指定头文件搜索路径:确保在编译 mylib 时能够找到必要的头文件。
  • 为依赖 mylib 的目标自动添加头文件路径:使用 PUBLIC 关键字,使得所有链接 mylib 的目标(如可执行文件或其他库)也能自动包含这些目录,简化依赖管理。

这种方式符合现代 CMake 的最佳实践,通过清晰地指定目标的接口属性(如包含目录),使项目结构更加模块化和易于维护。

http://www.yayakq.cn/news/376301/

相关文章:

  • 德阳定制建站网站建设制作常州个人网站建设
  • 中国神鹰网站建设开设计公司客源哪里找
  • 帮朋友做网站 知乎在线flash相册网站源码
  • 网站建设亿码酷出名5dedecms 安防监控行业网站模板
  • 毕业设计 网站开发如何用电脑做网站服务器吗
  • 高端网站建设代码wordpress 模板层级
  • 护肤品 网站建设策划 最新版天堂资源在线
  • 哪里有做网站app的网站建设合同付款比例
  • 重庆网站推广流程电子商务网站的设计
  • 网站防止非法链接怎么做注册公司需要什么流程
  • vip域名做网站好不好微信公众号如何做网站
  • 有教做桥梁质检资料的网站吗开互联网公司需要什么条件
  • phpstud可以做几个网站游戏制作软件有哪些
  • 高校档案网站建设的目的是什么意思网站开发如何无感更新
  • 惠东做网站网络规划与设计期末考试题及答案
  • 东莞网站建设推广费用wordpress婚庆主题公园
  • 网站内链是什么 怎么做青岛设计网站的公司哪家好
  • 设计素材网站哪几个好用顺德网站建设案例
  • 网站开发如何入门wordpress高校主题
  • 海口公司网站建设seo营销怎么做
  • asp.net网站安装顺序非遗文化网站建设
  • 排行榜哪个网站最好简单网页编辑软件
  • 自己建立的网站做网站开创和中企动力哪家强
  • 如何优化网站tkd网页设计代码html分行
  • 网站vi设计公司wordpress出现不能登录
  • 厦门市建设局网站文件软件公司需要的资质和认证
  • 电子商务与网站建设的发展综述网站设计建设步骤
  • 做外贸自己的公司网站域名备案管理系统查询
  • 广西网站建设timkee东莞信科网站建设
  • 什么网站做网页好网站建设的重点是什么