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

高端响应式网站建设中国菲律宾商会会长

高端响应式网站建设,中国菲律宾商会会长,网站建设侵权行为有哪些,计算机类哪个专业前景好CMake 的 FetchContent 模块是一个非常方便的工具,用于在构建过程中从远程位置下载和管理外部依赖项。通过 FetchContent,您可以在项目的 CMake 配置过程中下载、提取和添加外部项目,而不需要手动管理这些依赖项。下面是 FetchContent 的基本…

CMake 的 FetchContent 模块是一个非常方便的工具,用于在构建过程中从远程位置下载和管理外部依赖项。通过 FetchContent,您可以在项目的 CMake 配置过程中下载、提取和添加外部项目,而不需要手动管理这些依赖项。下面是 FetchContent 的基本用法介绍以及一个简单的代码示例,代码结构如下:
在这里插入图片描述

FetchContent 基本用法

  1. 引入 FetchContent 模块
    在 CMakeLists.txt 文件中,首先需要引入 FetchContent 模块:

    include(FetchContent)
    
  2. 声明并下载外部项目
    使用 FetchContent_Declare 函数声明外部项目,并使用 FetchContent_MakeAvailable 函数下载并解压该项目。例如,下载并构建一个外部项目 googletest

    FetchContent_Declare(googletestGIT_REPOSITORY https://github.com/google/googletest.gitGIT_TAG release-1.11.0
    )FetchContent_MakeAvailable(googletest)
    
  3. 使用外部项目
    一旦外部项目被下载和解压,就可以像项目中的其他库一样使用它。例如,链接 googletest 库到你的项目中:

    target_link_libraries(my_project PRIVATE gtest_main)
    

完整示例

下面是一个完整的示例,演示如何使用 FetchContent 下载并构建 googletest 并将其链接到一个简单的 C++ 项目。

项目结构:

/my_project
|-- CMakeLists.txt
|-- src
|   |-- main.cpp
|-- tests|-- test_main.cpp

CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)
project(MyProject)# 设置C++标准
set(CMAKE_CXX_STANDARD 14)# 引入FetchContent模块
include(FetchContent)# 声明googletest
FetchContent_Declare(googletestGIT_REPOSITORY https://github.com/google/googletest.gitGIT_TAG release-1.11.0
)# 下载并解压googletest
FetchContent_MakeAvailable(googletest)# 添加源文件
add_executable(my_project src/main.cpp)# 链接googletest库到测试项目
enable_testing()
add_executable(test_main tests/test_main.cpp)
target_link_libraries(test_main PRIVATE gtest_main)# 添加测试
add_test(NAME MyTest COMMAND test_main)

src/main.cpp:

#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
}

tests/test_main.cpp:

#include <gtest/gtest.h>TEST(SampleTest, AssertionTrue) {EXPECT_TRUE(true);
}int main(int argc, char **argv) {::testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

解释

  1. CMakeLists.txt 中包含了项目配置、FetchContent 配置以及项目和测试可执行文件的构建和链接。
  2. FetchContent_DeclareFetchContent_MakeAvailable 用于声明和下载 googletest
  3. 使用 target_link_librariesgoogletest 链接到测试可执行文件 test_main
  4. tests/test_main.cpp 中编写了一个简单的测试案例,并使用 gtest_main 运行所有测试。

通过这种方式,您可以轻松地在项目中引入和管理外部依赖项,而无需手动下载和配置这些库。
注意由于需要从github下载库,得有合适的网络环境,不然会无法下载或编译失败,例如下图:
在这里插入图片描述
如果是正常编译下载库,在编译后的目录build/_deps是FetchContent下载的库

FetchContent如何添加多个库

使用 CMake 的 FetchContent_DeclareFetchContent_MakeAvailable 可以下载和管理多个库。您只需为每个库单独调用 FetchContent_DeclareFetchContent_MakeAvailable

示例代码

假设您想要下载并使用 googletestfmt 库,这里是如何编写 CMakeLists.txt 文件的示例。

项目结构:

/my_project
|-- CMakeLists.txt
|-- src
|   |-- main.cpp
|-- tests|-- test_main.cpp

CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)
project(MyProject)# 设置C++标准
set(CMAKE_CXX_STANDARD 14)# 引入FetchContent模块
include(FetchContent)# 声明googletest
FetchContent_Declare(googletestGIT_REPOSITORY https://github.com/google/googletest.gitGIT_TAG release-1.11.0
)# 声明fmt
FetchContent_Declare(fmtGIT_REPOSITORY https://github.com/fmtlib/fmt.gitGIT_TAG 8.0.1
)# 下载并解压所有声明的内容
FetchContent_MakeAvailable(googletest fmt)# 添加源文件
add_executable(my_project src/main.cpp)# 链接fmt库到主项目
target_link_libraries(my_project PRIVATE fmt::fmt)# 链接googletest库到测试项目
enable_testing()
add_executable(test_main tests/test_main.cpp)
target_link_libraries(test_main PRIVATE gtest_main)# 添加测试
add_test(NAME MyTest COMMAND test_main)

src/main.cpp:

#include <iostream>
#include <fmt/core.h>int main() {fmt::print("Hello, World!\n");return 0;
}

tests/test_main.cpp:

#include <gtest/gtest.h>TEST(SampleTest, AssertionTrue) {EXPECT_TRUE(true);
}int main(int argc, char **argv) {::testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

解释

  1. 引入 FetchContent 模块

    include(FetchContent)
    
  2. 声明多个库
    使用 FetchContent_Declare 为每个库声明其存储库位置和版本。

    FetchContent_Declare(googletestGIT_REPOSITORY https://github.com/google/googletest.gitGIT_TAG release-1.11.0
    )FetchContent_Declare(fmtGIT_REPOSITORY https://github.com/fmtlib/fmt.gitGIT_TAG 8.0.1
    )
    
  3. 下载并解压所有声明的内容
    使用 FetchContent_MakeAvailable 下载并解压所有已声明的库。

    FetchContent_MakeAvailable(googletest fmt)
    
  4. 使用下载的库
    将下载的库链接到您的项目中。

    target_link_libraries(my_project PRIVATE fmt::fmt)
    target_link_libraries(test_main PRIVATE gtest_main)
    

通过这种方式,您可以轻松地管理和使用多个外部库。每个库的声明和下载是独立的,FetchContent 模块会自动处理依赖关系和构建顺序。


文章转载自:

http://ysfEYcZm.nxtgb.cn
http://1lVJGUn6.nxtgb.cn
http://Gt9oFXoe.nxtgb.cn
http://ZQa2NObe.nxtgb.cn
http://6kaBQZbd.nxtgb.cn
http://YdBRsI51.nxtgb.cn
http://XL6TZh99.nxtgb.cn
http://fKDQ5xfy.nxtgb.cn
http://GFQuxum1.nxtgb.cn
http://6OBAJemk.nxtgb.cn
http://nMPfgygv.nxtgb.cn
http://SOzm3Sjl.nxtgb.cn
http://3hI9Tu8H.nxtgb.cn
http://fiijXgAV.nxtgb.cn
http://Hg9xknwi.nxtgb.cn
http://aHLhNe2X.nxtgb.cn
http://ko1LtcW2.nxtgb.cn
http://vSZlpHkm.nxtgb.cn
http://TEDLurA8.nxtgb.cn
http://SU4ZtwLc.nxtgb.cn
http://KKWhSSRD.nxtgb.cn
http://0Ff6NaZg.nxtgb.cn
http://rHCBzO29.nxtgb.cn
http://xGRGCpbt.nxtgb.cn
http://nmpNUYll.nxtgb.cn
http://eZrClqKC.nxtgb.cn
http://6rpTJ3WY.nxtgb.cn
http://PjNvE1y7.nxtgb.cn
http://rnambQ5k.nxtgb.cn
http://3ltA7CLE.nxtgb.cn
http://www.dtcms.com/wzjs/739174.html

相关文章:

  • 郑州网站专业制作黄页网络
  • 怎么给网站做动图多媒体设计与制作是干什么的
  • 企业网站管理后台服务器维护中是什么意思
  • 网站建设公司外包亚马逊的网站建设
  • 网站开发小公司推荐免费行情app
  • 公司网站百度推广网站开发量计算
  • 网页建站系统注册网站费用
  • 厦门市翔安区建设局网站展览展示设计公司
  • 无锡网站建设价格费用空间设计主要做什么
  • 中国做的电脑系统下载网站好重庆校园网站开发
  • 保定做网站建设潜江建设局网站
  • 永嘉网站制作哪家好做venn图的网站
  • 蒙阴网站建设美食网站首页模板
  • c2c网站系统国内做网站的龙头企业
  • 上海百度推广优化巩义企业网站快速优化多少钱
  • 广安门内网站建设网站设计和制作费用
  • 建设一个网站需要的条件莱芜吧莱芜贴吧
  • 庆阳建设局网站黄石网站建设(乐云践新)
  • 网站模板建站公司前端网站开发的公用头部
  • 长春给企业做网站的公司图片制作app
  • 成都高新区制作网站低价网站制作
  • dw建立网站之后怎么做深圳模板网站制作
  • 网上做设计网站海关网站建设方案
  • 江夏区建设局网站网络营销是什么专业
  • 吴江seo网站优化软件wordpress有插件
  • 网站建设的感想与建议永久免费建站网站
  • 技术支持 沧州网站建设林哥seo
  • 织梦网站关闭应用商店安全下载
  • 电影网站建设 流程中式设计网站推荐
  • 福州网站关键词路由下做网站映射