CMake语法—选项(option)

2023-05-16

CMake语法—选项(option)

1 选项

1.1 定义


  
1f371a30bd0002168f6007c3a01e6584.png

1.2 说明

  • variable 选项名
  • help_text 描述、解释、备注
  • value 选项初始化值(除ON而外全为OFF)

2 应用注意事项

2.1 代码结构

  • learn_cmake:为根目录

  • build:为CMake配置输出目录(在此例中即生成sln解决方案的地方)

  • CMakeLists.txt:CMake脚本

  • cmake_config.bat:执行CMake配置过程的脚本(双击直接运行)

    
      
    @echo off
    set currentDir=%~dp0
    set buildDir=%currentDir%
    set cmakeOutputDir=%currentDir%\build
    cmake -S %buildDir% -B %cmakeOutputDir% -G"Visual Studio 16 2019" -T v140 -A x64
    pause

2.2 注意事项

2.2.1 不初始化或赋为非ON的值,全部视为OFF

  1. 示例代码

    
      
    cmake_minimum_required(VERSION 3.18)
    # 设置工程名称
    set(PROJECT_NAME KAIZEN)
    # 设置工程版本号
    set(PROJECT_VERSION "1.0.0.10" CACHE STRING "默认版本号")
    # 工程定义
    project(${PROJECT_NAME}
    LANGUAGES CXX C
    VERSION ${PROJECT_VERSION}
    )
    # 打印开始日志
    message(STATUS "\n########## BEGIN_TEST_OPTION")
    ## 示例1:不赋值
    option(${PROJECT_NAME}_BUILD_TEST "构建测试模块")
    if (DEFINED ${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "defined KAIZEN_BUILD_TEST")
    else()
    message(STATUS "not defined KAIZEN_BUILD_TEST")
    endif()
    if (${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "KAIZEN_BUILD_TEST is ON")
    else()
    message(STATUS "KAIZEN_BUILD_TEST is OFF")
    endif()
    message(STATUS "\n")
    ## 示例2:赋值为非ON、非OFF值
    option(${PROJECT_NAME}_BUILD_EXAMPLE "构建示例模块" AAA)
    if (DEFINED ${PROJECT_NAME}_BUILD_EXAMPLE)
    message(STATUS "defined KAIZEN_BUILD_EXAMPLE")
    else()
    message(STATUS "not defined KAIZEN_BUILD_EXAMPLE")
    endif()
    if (${PROJECT_NAME}_BUILD_EXAMPLE)
    message(STATUS "KAIZEN_BUILD_EXAMPLE_1 is ON")
    else()
    message(STATUS "KAIZEN_BUILD_EXAMPLE_1 is OFF")
    endif()
    if (${${PROJECT_NAME}_BUILD_TYPE})
    message(STATUS "KAIZEN_BUILD_EXAMPLE_2 is ON")
    else()
    message(STATUS "KAIZEN_BUILD_EXAMPLE_2 is OFF")
    endif()
    message(STATUS "\n")
    ## 示例3:赋值为ON
    option(${PROJECT_NAME}_BUILD_GUI "构建视图模块" ON)
    if (DEFINED ${PROJECT_NAME}_BUILD_GUI)
    message(STATUS "defined KAIZEN_BUILD_GUI")
    else()
    message(STATUS "not defined KAIZEN_BUILD_GUI")
    endif()
    if (${PROJECT_NAME}_BUILD_GUI)
    message(STATUS "KAIZEN_BUILD_GUI is ON")
    else()
    message(STATUS "KAIZEN_BUILD_GUI is OFF")
    endif()
    # 打印结束日志
    message(STATUS "########## END_TEST_OPTION\n")
  2. 运行结果

    
      
    -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
    -- The CXX compiler identification is MSVC 19.0.24245.0
    -- The C compiler identification is MSVC 19.0.24245.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    --
    ########## BEGIN_TEST_OPTION
    -- defined KAIZEN_BUILD_TEST
    -- KAIZEN_BUILD_TEST is OFF
    --
    -- defined KAIZEN_BUILD_EXAMPLE
    -- KAIZEN_BUILD_EXAMPLE_1 is OFF
    -- KAIZEN_BUILD_EXAMPLE_2 is OFF
    --
    -- defined KAIZEN_BUILD_GUI
    -- KAIZEN_BUILD_GUI is ON
    -- ########## END_TEST_OPTION
    -- Configuring done
    -- Generating done
    -- Build files have been written to: F:/learn_cmake/build
    请按任意键继续. . .

2.2.2 在定义语句执行后才有效;在定义之前均视为未定义(除过在CMake命令中通过-D预定义)

  1. 示例代码

    
      
    cmake_minimum_required(VERSION 3.18)
    # 设置工程名称
    set(PROJECT_NAME KAIZEN)
    # 设置工程版本号
    set(PROJECT_VERSION "1.0.0.10" CACHE STRING "默认版本号")
    # 工程定义
    project(${PROJECT_NAME}
    LANGUAGES CXX C
    VERSION ${PROJECT_VERSION}
    )
    # 打印开始日志
    message(STATUS "\n########## BEGIN_TEST_OPTION")
    ## 定义之前是看不到的
    if (DEFINED ${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "defined KAIZEN_BUILD_TEST")
    else()
    message(STATUS "not defined KAIZEN_BUILD_TEST")
    endif()
    ## 定义语句
    option(${PROJECT_NAME}_BUILD_TEST "构建测试模块" ON)
    ## 定义后才可以看到
    if (DEFINED ${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "defined KAIZEN_BUILD_TEST")
    else()
    message(STATUS "not defined KAIZEN_BUILD_TEST")
    endif()
    ## 定义后再应用
    if (${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "KAIZEN_BUILD_TEST is ON")
    else()
    message(STATUS "KAIZEN_BUILD_TEST is OFF")
    endif()
    # 打印结束日志
    message(STATUS "########## END_TEST_OPTION\n")
  2. 运行结果

    
      
    -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
    -- The CXX compiler identification is MSVC 19.0.24245.0
    -- The C compiler identification is MSVC 19.0.24245.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    --
    ########## BEGIN_TEST_OPTION
    -- not defined KAIZEN_BUILD_TEST
    -- defined KAIZEN_BUILD_TEST
    -- KAIZEN_BUILD_TEST is ON
    -- ########## END_TEST_OPTION
    -- Configuring done
    -- Generating done
    -- Build files have been written to: F:/learn_cmake/build
    请按任意键继续. . .

2.2.3 已定义option选项会存储在CMakeCache.txt中。等价于缓存变量作用。

运行2.2.1中的示例代码,然后可以查看build目录下的CMakeCache.txt文件。如下图:

2.2.4 如果出现同名的变量(普通或缓存变量),则option会被忽略

  1. 示例代码

    
      
    cmake_minimum_required(VERSION 3.18)
    # 设置工程名称
    set(PROJECT_NAME KAIZEN)
    # 设置工程版本号
    set(PROJECT_VERSION "1.0.0.10" CACHE STRING "默认版本号")
    # 工程定义
    project(${PROJECT_NAME}
    LANGUAGES CXX C
    VERSION ${PROJECT_VERSION}
    )
    # 打印开始日志
    message(STATUS "\n########## BEGIN_TEST_OPTION")
    ## 1.1先定义普通变量
    set(${PROJECT_NAME}_BUILD_TEST "构建测试模块")
    if (DEFINED ${PROJECT_NAME}_BUILD_TEST)
    message(STATUS "defined KAIZEN_BUILD_TEST")
    else()
    message(STATUS "not defined KAIZEN_BUILD_TEST")
    endif()
    message(STATUS "KAIZEN_BUILD_TEST_1: ${${PROJECT_NAME}_BUILD_TEST}\n")
    ## 1.2再定义同名option选项
    option(${PROJECT_NAME}_BUILD_TEST "构建测试模块" ON)
    message(STATUS "KAIZEN_BUILD_TEST_2: ${${PROJECT_NAME}_BUILD_TEST}\n")
    ### 2.1先定义option选项
    option(${PROJECT_NAME}_BUILD_EXAMPLE "构建示例模块" OFF)
    if (DEFINED ${PROJECT_NAME}_BUILD_EXAMPLE)
    message(STATUS "defined KAIZEN_BUILD_EXAMPLE")
    else()
    message(STATUS "not defined KAIZEN_BUILD_EXAMPLE")
    endif()
    message(STATUS "KAIZEN_BUILD_EXAMPLE_1: ${KAIZEN_BUILD_EXAMPLE}")
    ### 2.2再定义普通同名变量
    set(${PROJECT_NAME}_BUILD_EXAMPLE "构建示例模块")
    message(STATUS "KAIZEN_BUILD_EXAMPLE_2: ${KAIZEN_BUILD_EXAMPLE}")
    # 打印结束日志
    message(STATUS "########## END_TEST_OPTION\n")
  2. 运行结果

    
      
    -- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
    -- The CXX compiler identification is MSVC 19.0.24245.0
    -- The C compiler identification is MSVC 19.0.24245.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    --
    ########## BEGIN_TEST_OPTION
    -- defined KAIZEN_BUILD_TEST
    -- KAIZEN_BUILD_TEST_1: 构建测试模块
    -- KAIZEN_BUILD_TEST_2: 构建测试模块
    -- defined KAIZEN_BUILD_EXAMPLE
    -- KAIZEN_BUILD_EXAMPLE_1: OFF
    -- KAIZEN_BUILD_EXAMPLE_2: 构建示例模块
    -- ########## END_TEST_OPTION
    -- Configuring done
    -- Generating done
    -- Build files have been written to: F:/learn_cmake/build
    请按任意键继续. . .

2.2.5 CMake命令中通过-D预设同名变量,则option也会被忽略(其本质与2.2.4相同)

  1. 示例代码

    
      
    cmake_minimum_required(VERSION 3.18)
    # 设置工程名称
    set(PROJECT_NAME KAIZEN)
    # 设置工程版本号
    set(PROJECT_VERSION "1.0.0.10" CACHE STRING "默认版本号")
    # 工程定义
    project(${ PROJECT_NAME }
    LANGUAGES CXX C
    VERSION ${ PROJECT_VERSION }
    )
    # 打印开始日志
    message(STATUS "\n########## BEGIN_TEST_OPTION")
    if (DEFINED ${ PROJECT_NAME }_BUILD_EXAMPLE)
    message(STATUS "defined KAIZEN_BUILD_EXAMPLE")
    else()
    message(STATUS "not defined KAIZEN_BUILD_EXAMPLE")
    endif()
    ## 定义option选项
    option(${ PROJECT_NAME }_BUILD_EXAMPLE "构建示例模块" OFF)
    message(STATUS "KAIZEN_BUILD_EXAMPLE: ${KAIZEN_BUILD_EXAMPLE}")
    # 打印结束日志
    message(STATUS "########## END_TEST_OPTION\n")
  2. cmake_config.bat

    
      
    @echo off
    set currentDir=%~dp0
    set buildDir=%currentDir%
    set cmakeOutputDir=%currentDir%\build
    cmake -S %buildDir% -B %cmakeOutputDir% -G"Visual Studio 16 2019" -T v140 -A x64 -DKAIZEN_BUILD_EXAMPLE=ON
    pause
  3. 运行结果

    
      
    --Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
    --The CXX compiler identification is MSVC 19.0.24245.0
    --The C compiler identification is MSVC 19.0.24245.0
    --Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler : C: / Program Files(x86) / Microsoft Visual Studio 14.0 / VC / bin / amd64 / cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler : C: / Program Files(x86) / Microsoft Visual Studio 14.0 / VC / bin / amd64 / cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    --
    ########## BEGIN_TEST_OPTION
    -- defined KAIZEN_BUILD_EXAMPLE
    -- KAIZEN_BUILD_EXAMPLE: ON
    -- ########## END_TEST_OPTION
    -- Configuring done
    -- Generating done
    -- Build files have been written to : F: / learn_cmake / build
    请按任意键继续. . .

2.2.6 修改option选项值(建议通过缓存变量方式修改)

  1. 示例代码

    
      
    cmake_minimum_required(VERSION 3.18)
    # 设置工程名称
    set(PROJECT_NAME KAIZEN)
    # 设置工程版本号
    set(PROJECT_VERSION "1.0.0.10" CACHE STRING "默认版本号")
    # 工程定义
    project(${ PROJECT_NAME }
    LANGUAGES CXX C
    VERSION ${ PROJECT_VERSION }
    )
    # 打印开始日志
    message(STATUS "\n########## BEGIN_TEST_OPTION")
    if (DEFINED ${ PROJECT_NAME }_BUILD_EXAMPLE)
    message(STATUS "defined KAIZEN_BUILD_EXAMPLE")
    else()
    message(STATUS "not defined KAIZEN_BUILD_EXAMPLE")
    endif()
    ## 定义option选项
    option(${ PROJECT_NAME }_BUILD_EXAMPLE "构建示例模块" OFF)
    message(STATUS "KAIZEN_BUILD_EXAMPLE_1: ${KAIZEN_BUILD_EXAMPLE}")
    ## 方式一:修改option选项值(无效方式,请忽略)
    option(${ PROJECT_NAME }_BUILD_EXAMPLE "构建示例模块" ON)
    message(STATUS "KAIZEN_BUILD_EXAMPLE_2: ${KAIZEN_BUILD_EXAMPLE}")
    ## 方式二:通过cache变量方式修改(正确方式,力推荐)
    set(${ PROJECT_NAME }_BUILD_EXAMPLE ON CACHE BOOL "构建示例模块" FORCE)
    message(STATUS "KAIZEN_BUILD_EXAMPLE_3: ${KAIZEN_BUILD_EXAMPLE}")
    # 打印结束日志
    message(STATUS "########## END_TEST_OPTION\n")
  2. 运行结果

    
      
    --Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.17763.
    --The CXX compiler identification is MSVC 19.0.24245.0
    --The C compiler identification is MSVC 19.0.24245.0
    --Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler : C: / Program Files(x86) / Microsoft Visual Studio 14.0 / VC / bin / amd64 / cl.exe - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler : C: / Program Files(x86) / Microsoft Visual Studio 14.0 / VC / bin / amd64 / cl.exe - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    --
    ########## BEGIN_TEST_OPTION
    -- not defined KAIZEN_BUILD_EXAMPLE
    -- KAIZEN_BUILD_EXAMPLE_1: OFF
    -- KAIZEN_BUILD_EXAMPLE_2 : OFF
    -- KAIZEN_BUILD_EXAMPLE_3 : ON
    -- ########## END_TEST_OPTION
    -- Configuring done
    -- Generating done
    -- Build files have been written to : F: / learn_cmake / build
    请按任意键继续. . .

    INI 复制 全屏

    当然,也可以通过定义同名普通变量方式进行修改。

    但是,通过普通变量方式修改后,CMakeCache.txt中的值仍然为旧值。感兴趣可自行验证。

    option选项本质与缓存变量相同,即会存储在CMakeCache.txt中。因此修改其值也推荐使用缓存变量的方式,这样会直接修改CMakeCache.txt中的存储值,更彻底、更本质、更安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CMake语法—选项(option) 的相关文章

  • 使用 CMake 添加仅标头依赖项

    我有一个简单的项目 需要三个仅头文件库才能编译 网络套接字 https github com zaphoyd websocketpp spdlog https github com gabime spdlog and 恩洛曼 json ht
  • 无法在 Qt5 应用程序中加载 qca-ossl

    我决定将我的应用程序从 Qt4 迁移到 Qt5 在 Qt4 中 我将 QCA 与 QCA OSSL 一起使用 没有任何问题 但现在 OSSL 插件不想加载 我已经在 Qt5 下从 git anongit kde org qca git 编译
  • CMake FindThreads.cmake 找不到我的 pthreads.h 标头

    我在用着android cmake http code google com p android cmake 编译 Android 应用程序 这实质上创建了一个 CMake 工具链文件 用于使用 Android NDK 提供的工具链 As
  • CMake:执行宏/函数作为add_custom_command的命令

    我正在使用一个外部库 它提供了用于自动代码生成的 CMake 函数 以在我的 CMakeLists 中使用 问题是 每当我修改 CMakeLists 时 该函数都会再次运行 从而触发新生成但未更改的源的重新编译 我需要像 add custo
  • 为什么 CMake 被设计为在安装时删除运行时路径

    我自己构建了我的共享库 例如 我使用一个计算斐波那契数的库 并希望在我的另一个 C 项目中使用它CMake 假设共享库和标头位于 path to my lib 共享库libfib so is in path to my lib lib和标题
  • 强制 target_link_libraries 使用 C++ 链接器

    TL DR 将静态 c 库链接到 c 可执行文件时 有没有办法强制 cmake 使用 c 链接器 我有一个静态库 由 2 个对象组成 一个 C 文件和一个该文件中函数的 C 包装器 构造函数 析构函数和打印函数 类似于this https
  • 如何在 Visual Studio 2019 的 CMakeLists.txt 中启用 clang-tidy?

    视觉工作室 2019文档 https learn microsoft com en us visualstudio code quality clang tidy view只谈改变CMakeSettings json启用clang tidy
  • 使用cmake创建UWP包

    我正在开发简单的 hello world 应用程序 main cpp include
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • 使用 cmake 构建项目后如何运行 ctest

    我希望每次成功构建项目时都启动测试 如果某些测试被破坏 我希望我的构建也被破坏 默认情况下 我需要通过运行来手动运行测试ctest命令 CTest 实际上可以构建项目 但我使用调用的 IDEmake建立资源 和make不运行测试 我将此命令
  • CMake 链接失败

    我正在为 CMake 配置我的项目 并且遇到链接问题 项目文件全部编译成功 然后它说它正在链接并报告未找到的各种符号 这些符号大部分是由我自己的代码提供的 其中一些是由 BerkeleyDB 提供的 它已被正确定位并包含在内 这是我的顶级
  • 使用 CMAKE (VISUAL STUDIO) 链接调试和发布库

    已经有一个Thread https stackoverflow com q 2209929 293195这并没有真正帮助 我希望能够链接例如Foo lib for Release配置和Foo d lib for Debug配置 我怎样才能实
  • Jenkins + Cmake + JIRA = 多个相互依赖项目的 CI?

    我们的系统中有许多小项目在 Linux 上运行 Slackware 7 11 正在慢慢迁移到 RHEL 6 0 大约 50 100 个应用程序和 15 20 个库 我们几乎所有的应用程序都使用我们的一个或多个库 我们的源树看起来像这样 ap
  • Qt5 CMake 将所有库包含到可执行文件中

    我正在尝试使用 Qt 5 14 构建一个发布模式下的应用程序 并且 Qt Creator 内部一切正常 但是当我尝试单独运行可执行文件时 我收到如下错误 OS Windows 10 Qt 5 14 Cmake 3 5 我尝试过的 设置 CM
  • grpc找不到protobuf库

    我检查了 grpc 安装并完成了构建和安装 现在当我尝试 find package gRPC CONFIG REQUIRED I get CMake Error at CMakeLists txt 15 find package Found
  • 如何安装和使用 YAML-Cpp

    我想学习 YAML 并将其与 C 一起使用 但我一直在尝试设置YAML Cpp 让我解释一下到目前为止我所做的事情 我下载了源代码 版本0 5 1 安装的 Cmake 适用于 Windows 安装了 Boost 库 为 Visual Stu
  • 如何以编程方式迭代所有 CMake 目标?

    有没有办法从顶层获取 CMake 项目的所有目标CMakeLists txt 即以编程方式迭代目标 我想要这样做的原因是将一些 XCode 特定设置应用于每个目标 if CMAKE GENERATOR MATCHES Xcode inclu
  • CMake:不要为链接中使用的单个库设置 rpath

    我想要做的是配置我的 CMakeLists 文件 以便在构建我的项目时 链接器使用驻留在我的构建树中的共享库 so 的副本来链接可执行文件 但不会在中设置 rpath链接的可执行文件 以便系统必须在加载程序请求时提供该库 具体来说 我想在构
  • 如何在cmake中添加cuda源代码的定义

    我使用的是 Visual Studio 2013 Windows 10 CMake 3 5 1 一切都可以使用标准 C 正确编译 例如 CMakeLists txt project Test add definitions D WINDOW
  • 使用 target_link_libraries 以绝对路径作为库路径进行平台库名称扩展?

    在 CMake 中使用 target link libraries 仅使用库名称 例如 target link library myProject SomeLibrary 将根据平台将 SomeLibrary 扩展为 SomeLibrary

随机推荐

  • 小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic

    目录总览 小车yolo机械臂 xff08 一 xff09 ros下gazebo搭建小车 xff08 可键盘控制 xff09 安装摄像头仿真 加载yolo检测识别标记物体 小车yolo机械臂 xff08 二 xff09 机械臂仿真 ros下从
  • ESP32-CAM实现局域网/远程视频传输

    手上这个ESP32 CAM买回来已经放了一个学期了 xff0c 最近才开始玩 xff0c 试了试用它来实现视频传输 局域网的视频传输比较简单 xff0c 基本能正确把例程烧进去就可以了 xff0c 这篇文章主要记录一下远程视频传输的实现 E
  • Debian 9.5  中文输入问题

    刚安装完debian9 5 发现输入法无法切换 xff0c 网页显示不了中文 找设置找不到修改的地方 xff0c 于是上网查教程 一开始按照教程需要安装 xff1a fcitx ui classic xff0c fcitx ui light
  • Hive_基于Hive的网站日志分析

    文章目录 概述1 引出需要进行数据预处理的必要性 toc 2 使用RegexSerDe处理apache或者ngnix日志文件 toc 3 根据不同业务拆表 toc 3 1 需求分析3 2 拆表 4 数据清洗 toc 4 1 Hive自定义函
  • python如何判断用户输入回车键?--关于input()函数的前世今生

    前言 最近在写代码的时候 xff0c 需要判断一下用户是不是敲了回车键 xff0c 于是写出了这样的代码 xff1a span class token keyword if span span class token builtin inp
  • PyTorch版YOLOv4训练自己的数据集---基于Google Colab

    colab简介 Google Colaboratory是谷歌开放的一款研究工具 xff0c 主要用于机器学习的开发和研究 工具优势 xff1a Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用 你可以在上面轻松地
  • Efficientnet_pytorch训练自己的数据集,并对数据进行分类

    准备训练的数据集 相关代码已整理至github https github com whisperLiang efficientnet pytorch git 相关代码已整理至码云 xff1a https gitee com whisperl
  • 水下图像色彩还原(基于可见光衰减及图像去雾算法)

    参考源 参考论文 xff1a UnderwaterHazeLines BMVC2017 Github项目地址 xff1a https github com danaberman underwater hl git 对论文的一些重述 水下图像
  • 强化学习TD3算法笔记1——论文解读

    相关论文 TD3 xff1a TD3 Double DQN Double DQN DDPG DDPG TD3论文结构 摘要 xff1a 提出Actor Critic面对的问题 xff0c 概括了TD3算法和效果引言 xff1a 提出当前对于
  • Efficientnet_pytorch_cbam_gui

    大致说明 这是一个基于efficientnet模型的图像分类方案 模型融入了cbam注意力机制模块 xff0c cutmix CrossEntropyLabelSmooth auto augment等tricks帮助原生的effcientn
  • 可靠性udp传输大文件

    高级计算机网络大作业 可靠性udp传输大文件 实验数据zstd压缩1G文件 xff08 延迟100ms 丢包1 xff09 0 1G文件 xff08 延迟100ms 丢包1 xff09 0 01G文件 xff08 延迟100ms 丢包1 x
  • 一些奇怪问题的解决汇总

    vscode ssh远程连接 问题描述 xff1a Setting up SSH Host 192 168 78 133 details Initializing VS Code Server 一开始尝试了网络的各种方式 xff0c 比如删
  • 控制系统--系统结构图

    结构图基本单元 信号线 表示信号流向 引出点 表示信号引出 xff0c 被引出信号与原信号完全相同 或 从同一位置引出信号完全相同 比较点 将所有输入信号做代数运算 方框 表示信号经过传递函数为 H s
  • 字符串及处理之三: 使用TCHAR系列方案

    使用TCHAR系列方案编写程序 TCHAR是一种字符串类型 xff0c 它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码 xff0c 不需要使用繁琐的宏定义来包含你的代码 TCHAR的引入 xff0c 主要是在Tch
  • Chrome解决“github.com拒绝了我们的访问请求”

    目录 1 网站查询特定IP 2 host文件修改 3 刷新DNS 如果你在Chrome访问github com时出现以下错误 xff1a 本博主之前的Chrome和Edge都无法访问github官网 xff0c 然后就来到了万能的C站找到了
  • STC12C5A60S2_LCD1602驱动

    文章目录 LCD1602 HLCD1602 cmain c LCD1602 H 代码如下 xff1a span class token macro property span class token directive hash span
  • 猿创征文|机器学习实战(8)——随机森林

    目录 1 随机森林 2 极端随机树 3 特征重要性 4 提升法 4 1 AdaBoost 4 2 梯度提升 机器学习实战 xff08 7 xff09 中我们已经提到 xff0c 随机森林是决策树的集成 xff0c 通常用bagging方法训
  • 总结2014——迷茫以及迷茫过后的坚持

    首先 xff0c 借用一句话和大家共勉 xff1a 少一些功利主义的追求 xff0c 多一些不为什么的坚持 xff01 xff01 不知不觉15年也快过了1个月了 xff0c 还是想着要为14年做一下总结 xff1a 记录一下自己的历程 今
  • 汇编总结:lea指令

    ea指令变种 按大小分类 leaw 2个字节 leal 4个字节 leaq 8个字节 lea的用法 leaq a b c d rax 首先lea指令是mov指令的变种 xff0c 据说 xff0c lea指令是x86体系结构中 xff0c
  • CMake语法—选项(option)

    CMake语法 选项 xff08 option xff09 1 选项 1 1 定义 1 2 说明 variable 选项名help text 描述 解释 备注value 选项初始化值 xff08 除ON而外全为OFF xff09 2 应用注