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

CMake中的变量: 改变构建行为的变量

文章目录

变量名称描述
BUILD_SHARED_LIBS全局标志,用于在启用时使add_library()创建共享库。 如果存在并且为true,则这将导致所有库被构建为共享库,除非该库被明确添加为静态库。这个变量通常作为option()添加到项目中,这样项目的每个用户都可以决定是使用共享库还是静态库来构建项目。
CMAKE_ABSOLUTE_DESTINATION_FILES使用绝对目的地路径安装的文件列表。 此变量由CMake生成的CMake_install.CMake脚本定义。它可以由源于这些安装脚本的程序或脚本使用(只读)。这被一些CPack生成器(例如RPM)使用。
CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY是否在add_custom_command()中默认启用DEPENDS_EXPLICIT_ONLY选项。
CMAKE_APPBUNDLE_PATH以分号分隔的目录列表,指定find_program()和find_package()命令使用的macOS应用程序包的搜索路径。
CMAKE_BUILD_TYPE指定单个配置生成器(例如Makefile generators或Ninja)上的生成类型。典型的值包括Debug、Release、RelWithDebInfo和MinSizeRel,但也可以定义自定义构建类型。 当首次创建新的构建树时,该变量由项目中调用的第一个project()或enable_language()命令初始化。如果设置了CMAKE_BUILD_TYPE环境变量,则使用其值。否则,在启用语言时,将选择特定于工具链的默认值。默认值通常是一个空字符串,但这通常是不可取的,其他标准构建类型通常更合适。
CMAKE_CLANG_VFS_OVERLAY当使用clang cl为windows进行交叉编译时,此变量可以是指向clang虚拟文件系统yaml文件的绝对路径,这将使clang cl能够解析区分大小写的文件系统上的windows标头名称。
CMAKE_CODEBLOCKS_COMPILER_ID更改生成的CodeBlocks项目文件中的编译器id。 CodeBlocks使用自己的编译器id字符串,该字符串不同于CMAKE__compiler_id。如果此变量为空,CMake将尝试自动识别CodeBlocks编译器id。否则,指定的字符串将在CodeBlocks项目文件中使用。有关有效的编译器id字符串,请参阅CodeBlocks文档。
CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES更改CodeBlocks生成器创建项目文件的方式。 如果此变量的计算结果为ON,生成器将从项目文件中排除位于项目根目录之外的任何文件。
CMAKE_CODELITE_USE_TARGETS更改CodeLite生成器创建项目文件的方式。 如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则生成器将基于目标而非项目创建项目文件。
CMAKE_COLOR_DIAGNOSTICS全程启用颜色诊断。 此变量使用三种状态:ON、OFF和未定义。 未定义时:Makefile生成器将CMAKE_COLOR_Makefile变量初始化为ON。它控制颜色构建系统消息。GNU/Clang编译器不使用任何颜色诊断标志进行调用。 打开时:Makefile生成器默认情况下生成彩色构建系统消息。CMAKE_COLOR_MAKEFILE未初始化,但可以显式设置为OFF以禁用彩色构建系统消息。GNU/Clang编译器的调用带有启用颜色诊断的标志(-fcolor diagnostics)。 关闭时:默认情况下,Makefile生成器不会生成彩色构建系统消息。CMAKE_COLOR_MAKEFILE未初始化,但可以显式设置为ON以启用彩色构建系统消息。GNU/Clang编译器的调用带有禁用颜色诊断的标志(-fno颜色诊断)。 如果设置了CMAKE_COLOR_DIAGNOSTICS环境变量,则使用其值。否则,CMAKE_COLOR_DIAGNOSTICS为否
CMAKE_COLOR_MAKEFILE使用Makefile生成器时启用颜色输出。 启用后,生成的Makefile将产生彩色输出。默认值为ON。
CMAKE_CONFIGURATION_TYPES以分号分隔的列表形式指定多配置生成器(例如Visual Studio、Xcode或Ninja multi-config)上的可用生成类型(配置)。典型的条目包括Debug、Release、RelWithDebInfo和MinSizeRel,但也可以定义自定义构建类型。 当首次创建新的构建树时,该变量由项目中调用的第一个project()或enable_language()命令初始化。如果设置了CMAKE_CONFIGURATION_TYPES环境变量,则使用其值。否则,默认值是特定于生成器的。
CMAKE_DEPENDS_IN_PROJECT_ONLY当在目录中设置为TRUE时,Makefile Generators生成的构建系统将被设置为仅考虑对出现在源目录或二进制目录中的源文件的依赖关系。对这些目录之外的源文件的更改不会导致重建。 在构建过程中通过外部头文件获取某些源文件的情况下,应谨慎使用此方法。
CMAKE_DISABLE_FIND_PACKAGE_用于禁用find_package()调用的变量。 通过将变量CMAKE_DISABLE_find_package_设置为TRUE,可以禁用项目中的每个非REQUIRED find_package()调用。这可以用于构建没有可选包的项目,尽管该包已安装。
CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES这个缓存变量由Eclipse项目生成器使用。
CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT这个缓存变量由Eclipse项目生成器使用。
CMAKE_ECLIPSE_MAKE_ARGUMENTS这个变量包含Eclipse调用make工具时使用的参数。默认情况下,它被初始化为保存标志以启用并行构建(通常使用-j)。
CMAKE_ECLIPSE_RESOURCE_ENCODING这个缓存变量告诉EclipseCDT4项目生成器在生成的项目文件中将资源编码设置为给定值。如果未给定任何值,则不会设置任何编码。
CMAKE_ECLIPSE_VERSION在使用Eclipse项目生成器时,CMake会尝试查找Eclipse可执行文件并检测其版本。根据找到的版本,某些功能会被启用或禁用。如果CMake找不到Eclipse,它将假定支持的最旧版本是EclipseCallisto(3.2)。
CMAKE_ERROR_DEPRECATED是否为不推荐使用的功能发出错误。 如果为TRUE,则使用不推荐使用的功能将出现致命错误。如果未设置此变量,则CMake的行为就像设置为FALSE一样。
CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION一旦遇到具有绝对install DESTINATION的文件,请要求cmake_install.cmake脚本出错。 致命错误是在安装有问题的文件之前发出的。此变量由CMake生成的CMake_install.CMake脚本使用。如果在运行脚本时将此变量设置为ON,则可能会收到来自脚本的致命错误消息。
CMAKE_EXECUTE_PROCESS_COMMAND_ECHO如果此变量设置为STDERR、STDOUT或NONE,则execute_process()调用中的命令将打印到STDERR或STDOUT,或者根本不打印。
CMAKE_EXPORT_COMPILE_COMMANDS在生成期间启用/禁用编译命令的输出。
CMAKE_EXPORT_PACKAGE_REGISTRY当CMP0090设置为NEW时,启用导出(PACKAGE)命令。
CMAKE_EXPORT_NO_PACKAGE_REGISTRYCMP0090未设置为NEW时,禁用export(PACKAGE)命令。
CMAKE_FIND_APPBUNDLE此变量影响find_*命令如何在macOS应用程序包和unix风格的包组件之间进行选择。
CMAKE_FIND_FRAMEWORK在Darwin或支持macOS应用程序捆绑包的系统上,CMAKE_FIND_APPBUNDLE变量可以设置为空或以下值之一: FIRST:尝试在标准程序之前查找应用程序捆绑包。这是达尔文的默认设置。 LAST:尝试在标准程序之后查找应用程序捆绑包。 ONLY:仅尝试查找应用程序捆绑包。 NEVER:永远不要尝试查找应用程序捆绑包。
CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX指定一个<suffix>来告诉find_library()命令在通常要搜索的每个lib目录之前先在lib<suffx>目录中进行搜索。 这将覆盖相关全局属性的行为: FIND_LIBRARY_USE_LIB32_path FIND_LIBRARY_USE_LIB64_path FIND_LIBRARY_USE_LIBX32_path
CMAKE_FIND_LIBRARY_PREFIXES查找库时要前置的前缀。 这指定在find_library()命令查找库时要添加到库名称的前缀。在UNIX系统上,这通常是lib,这意味着当试图查找foo库时,它将查找libfoo。
CMAKE_FIND_LIBRARY_SUFFIXES查找库时要附加的后缀。 这指定在find_library()命令查找库时要添加到库名称的后缀。在Windows系统上,这通常是.lib,根据编译器的不同,还有.dll.a、.a(例如GCC和Clang),因此当它试图查找foo库时,它会查找[]foo.lib和/或[]foo[.dll].a,这取决于所使用的编译器和CMAKE_find_library_PREFIXES中指定的。
CMAKE_FIND_NO_INSTALL_PREFIX从CMAKE_SYSTEM_PREFIX_PATH中排除CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX变量的值。默认情况下,CMake会将这些项目目标前缀添加到CMake_SYSTEM_PREFIX_PATH中,以支持构建一系列依赖包并将其安装到公共前缀中。将CMAKE_FIND_NO_INSTALL_PREFIX设置为TRUE可抑制此行为。 CMAKE_SYSTEM_PREFIX_PATH在第一次调用project()或enable_language()命令时初始化。因此,必须在此之前设置CMAKE_FIND_NO_INSTALL_PREFIX才能生效。用户可以在命令行上将变量设置为高速缓存条目来实现这一点。 请注意,由于其他原因,前缀仍可能被搜索,例如与CMake安装的前缀相同,或者是内置的系统前缀。
CMAKE_FIND_PACKAGE_PREFER_CONFIG如果未指定模式,请告诉find_package()在"Module"模式之前尝试"配置"模式。 当在没有MODULE选项的情况下使用缩减签名时,命令find_package()在没有显式模式的情况下运行。在这种情况下,默认情况下,CMake首先通过搜索Find.CMake模块来尝试Module模式。如果失败,CMake将使用Config模式搜索包。 将CMAKE_FIND_PACKAGE_PREFER_CONFIG设置为TRUE,告诉FIND_PACKAGE()在返回模块模式之前先使用配置模式进行搜索。 当开发人员编译了通用库的自定义版本并希望将其链接到依赖项目时,此变量可能很有用。如果此变量设置为TRUE,则在查找开发人员自定义构建的库之前,将阻止依赖项目对find_package()的调用选择系统的find.cmake模块所定位的默认库。
CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS设置为TRUE可告诉find_package()调用解析_DIR值中的符号链接。 这在包搜索路径指向代理目录的用例中很有帮助,在该目录中会出现指向实际包位置的符号链接。默认情况下,这是不启用的,因为也有一些常见的用例应该保留符号链接。
CMAKE_FIND_PACKAGE_TARGETS_GLOBAL设置为TRUE会将find_package()发现的所有IMPORTED目标提升到全局作用域。 将其设置为TRUE类似于将GLOBAL指定为find_package()的参数。默认值为OFF。
CMAKE_FIND_PACKAGE_WARN_NO_MODULE如果在没有显式模式的情况下调用,请告诉find_package()发出警告。
CMAKE_FIND_ROOT_PATH要在文件系统上搜索的根路径的分号分隔列表。 此变量在交叉编译时最有用。CMake使用此列表中的路径作为替代根,以查找具有find_package()、find_library()等的文件系统项。
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE此变量控制FIND_FILE()和FIND_PATH()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY此变量控制find_library()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE此变量控制find_package()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM此变量控制find_program()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_CMAKE_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_INSTALL_PREFIX控制以下命令的默认行为,以确定是否搜索CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX变量中的位置。 find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。由于与CMAKE_FIND_NO_INSTALL_PREFIX的向后兼容性,FIND命令的行为会根据此变量是否存在而更改。
CMAKE_FIND_USE_PACKAGE_REGISTRY控制find_package()命令的默认行为,用于是否搜索用户包注册表提供的路径。 默认情况下,未设置此变量,并且行为将回退到不推荐使用的CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY变量所确定的行为。如果也未设置,则find_package()将使用用户包注册表,除非提供了NO_CMAKE_package_Registry选项。 当两者都设置时,此变量优先于CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY。 在某些情况下,例如,为了只定位系统范围内的安装,在搜索包时不希望使用用户包注册表。如果CMAKE_FIND_USE_PACKAGE_REGISTRY变量为FALSE,则所有FIND_PACKAGE()命令都将跳过用户程序包注册表,就像它们是用NO_CMAKE_PACKAGE_REGISTRY参数调用的一样。
CMAKE_FIND_USE_PACKAGE_ROOT_PATH控制以下命令的默认行为,以确定是否搜索_ROOT变量提供的路径: find_program() find_file() find_library() find_package() find_path() 默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH控制以下命令的默认行为,以确定是否搜索标准系统环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY控制通过find_Package()命令搜索系统包注册表。 默认情况下,未设置此变量,并且行为将回退到不推荐使用的CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY变量所确定的行为。如果也未设置,则find_package()将使用系统包注册表,除非提供了NO_CMAKE_System_package_Registry选项。 当两者都设置时,此变量优先于CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY。 在某些情况下,例如,为了只定位用户特定的安装,在搜索包时不希望使用系统包注册表。如果CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY变量为FALSE,则所有FIND_PACKAGE()命令都将跳过系统包注册表,就像它们是用NO_CMAKE_SYSTEM-PACKAGE_REGISTRY参数调用的一样。
CMAKE_FRAMEWORK_PATH以分号分隔的目录列表,指定find_library()、find_package()、find_path()和find_file()命令使用的macOS框架的搜索路径。
CMAKE_IGNORE_PATH对于find_program()、find_library()、find_file()和find_path(),在其中一个列出的目录中找到的任何文件都将被忽略。列出的目录不递归应用,因此任何要忽略的子目录也必须显式列出。CMAKE_IGNORE_PATH不会影响这四个命令使用的搜索前缀。要忽略搜索前缀下的各个路径(例如bin、include、lib等),每个路径必须在CMAKE_ignore_path中作为完整的绝对路径列出。CMAKE_IGNORE_REFIX_PATH提供了一种更合适的方法来忽略整个搜索前缀。 find_package()也会受到CMAKE_IGNORE_PATH的影响,但仅适用于配置模式搜索。在其中一个指定目录中找到的任何<Name>Config.cmake或<Name>-Config.cmake文件都将被忽略。此外,由于向后兼容性的原因,在CMAKE_IGNORE_PATH中找到的任何搜索前缀都将被跳过,但新代码应该更喜欢
CMAKE_IGNORE_PREFIX_PATH要由find_program()、find_library()、find_file()和find_path()命令忽略的搜索前缀的分号分隔列表。find_package()命令的Config模式也会忽略前缀(Module模式不受影响)。要忽略特定目录,请参阅CMAKE_ignore_PATH。 在某些系统目录包含不兼容但可能可链接的库的交叉编译环境中,忽略搜索位置可能很有用。例如,在交叉编译的集群环境中,这允许用户忽略包含用于前端机器的库的目录。 默认情况下,CMAKE_IGNORE_PREFIX_PATH为空。它是由项目或最终用户设置的。
CMAKE_INCLUDE_DIRECTORIES_BEFORE默认情况下,是否在include_directories()中附加或预附加目录。 此变量影响include_directories()命令的默认行为。将该变量设置为ON相当于在该命令的所有使用中使用BEFORE选项。
CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE是否强制准备项目包含目录。 此变量影响编译器命令行中生成的include目录的顺序。如果设置为ON,则会首先出现CMAKE_SOURCE_DIR和CMAKE_BINARY_DIR。
CMAKE_INCLUDE_PATH用分号分隔的目录列表,指定find_file()和find_path()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_INCLUDE_PATH,用作搜索目录的附加列表。
CMAKE_INSTALL_DEFAULT_COMPONENT_NAMEinstall()命令中使用的默认组件。 如果使用install()命令而不使用COMPONENT参数,则这些文件将被分组到默认组件中。此默认安装组件的名称将取自此变量。它默认为"Unspecified"。
CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONSinstall()和file(install)在安装文件期间隐式创建的目录的默认权限。 如果调用make-install并隐式创建目录,则它们将获得由CMAKE_install_DEFAULT_DIRECTORY_permissions变量设置的权限,如果未设置该变量,则获得特定于平台的默认权限。 如果未通过install()命令显式安装但需要在特定路径上安装文件,则会创建隐式创建的目录。此类位置的示例是由于设置CMAKE_INSTALL_PREFIX而创建的目录。 CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS变量的预期内容是INSTALL()命令PERMISSIONS部分可以使用的权限列表。
CMAKE_INSTALL_MESSAGECMAKE_INSTALL_MESSAGE变量可以设置为控制打印哪些消息: ALWAYS:打印“正在安装”和“最新”消息。 LAZY:打印正在安装但不是最新消息。 NEVER:既不打印“正在安装”消息,也不打印最新消息。 其他值具有未定义的行为,可能无法诊断。 如果未设置此变量,则默认行为为ALWAYS。
CMAKE_INSTALL_PREFIXInstall()使用的安装目录。 如果调用了make-install或生成了install,则该目录将预先添加到所有安装目录中。此变量在UNIX上默认为/usr/local,在Windows上默认为c:/Program Files/${PROJECT_NAME}。
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT当CMake_INSTALL_PREFIX刚刚初始化为其默认值时,通常在新构建树中首次运行CMake时,CMake会将此变量设置为TRUE值。
CMAKE_KATE_FILES_MODE此缓存变量由Kate项目生成器使用,并控制将项目文件中的文件条目设置为何种模式。 可能的值有AUTO、SVN、GIT、HG、FOSSIL和LIST。 当设置为LIST时,CMake将把CMake已知的源文件列表放在项目文件中。当设置为SVN、GIT、HG或FOSSIL时,CMake将相应地将生成的项目设置为Subversion、GIT、Mercurial或FOSSIL,然后Kate将使用相应的命令行工具检索项目中的文件列表。当取消设置或设置为AUTO时,CMake将尝试检测源目录是否是git或svn签出的一部分,并将相应的条目放入项目文件中。
CMAKE_KATE_MAKE_ARGUMENTS此缓存变量由Kate项目生成器使用。 这个变量包含Kate调用make工具时使用的参数。默认情况下,它被初始化为保存标志以启用并行构建(通常使用-j)。
CMAKE_LIBRARY_PATH用分号分隔的目录列表,指定find_library()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_LIBRARY_PATH,用作搜索目录的附加列表。
CMAKE_LINK_DIRECTORIES_BEFORE默认情况下,是在link_directories()中附加目录还是预附加目录。 此变量影响link_directories()命令的默认行为。将该变量设置为ON相当于在该命令的所有使用中使用BEFORE选项。
CMAKE_LINK_LIBRARIES_ONLY_TARGETS设置此变量可在创建非导入目标时初始化其LINK_LIBRARIES_ONLY_TARGETS属性。将其设置为true可以额外检查target_link_libraries()命名的所有可以作为目标名称的项是否都是现有目标的名称。有关详细信息,请参阅目标属性文档。
CMAKE_MAXIMUM_RECURSION_DEPTHCMake脚本的最大递归深度。它打算在命令行上用-DCMAKE_MAXIMUM_RECURSION_DEPTH=设置,或者由需要大递归深度的项目在CMakeLists.txt中设置。
CMAKE_MESSAGE_CONTEXT当cmake–log上下文命令行选项或CMAKE_MESSAGE_CONTEXT_SHOW变量启用时,MESSAGE()命令会将CMAKE_MESSAGE_CONTEXT列表转换为一个由方括号包围的点分隔字符串,并将其置于日志级别NOTICE及以下消息的每一行之前。 为了有效地记录上下文,项目通常应该将一个项APPEND和POP_BACK添加到CMAKE_MESSAGE_CONTEXT的当前值,而不是替换它。项目不应该假设源树顶部的消息上下文为空,因为在某些情况下,上下文可能已经设置好了(例如分层项目)。
CMAKE_MESSAGE_CONTEXT_SHOW将此变量设置为true可以显示message()命令记录的每一行的上下文(有关上下文本身的指定方式,请参阅CMAKE_MESSAGE_CONTEXT)。 此变量是在cmake命令行上提供–log上下文选项的替代选项。尽管命令行选项将仅适用于该一次CMake运行,但将CMake_MESSAGE_CONTEXT_SHOW设置为true作为缓存变量将确保后续CMake的运行将继续显示消息上下文。 项目不应设置CMAKE_MESSAGE_CONTEXT_SHOW。它适用于用户,以便他们可以控制是否在消息中包含上下文。
CMAKE_MESSAGE_INDENTmessage()命令连接该列表中的字符串,对于NOTICE及以下的日志级别,它会在消息的每一行中预先添加结果字符串。
CMAKE_MESSAGE_LOG_LEVEL设置时,此变量指定message()命令使用的日志记录级别。有效值与cmake程序的–log级别命令行选项的有效值相同。如果设置了此变量,并提供了–log级别的命令行选项,则命令行选项优先。 使用此变量的主要优点是在CMake运行之间保持日志级别。将其设置为缓存变量将确保后续CMake运行将继续使用所选的日志级别。 项目不应该设置这个变量,它是为用户准备的,这样他们就可以根据自己的需要控制日志级别。
CMAKE_MFC_FLAG将MFC库用于可执行文件或dll。 允许使用Microsoft基础类(MFC)。对于静态MFC库,它应该设置为1,对于共享MFC库,应该设置为2。这在Visual Studio项目文件中使用。
CMAKE_MODULE_PATH以分号分隔的目录列表,使用正斜杠表示,在检查CMake附带的默认模块之前,指定要由include()或find_package()命令加载的CMake模块的搜索路径。默认情况下为空。它将由项目设置。
CMAKE_POLICY_DEFAULT_CMPCMake Policy CMP<NNNN>在其他情况下未设置时的默认值。
CMAKE_POLICY_WARNING_CMP当CMake_Policy()未显式或CMake_minimum_required()未隐式设置CMake Policy CMP<NNNN>时,显式启用或禁用警告。
CMAKE_PREFIX_PATH用分号分隔的目录列表,指定find_package()、find_program()、find_library()、查找_file()和查找路径()命令要搜索的安装前缀。每个命令都会根据自己的文档中的指定添加适当的子目录(如bin、lib或include)。 默认情况下,此字段为空。它将由项目设置。 还有一个环境变量CMAKE_PREFIX_PATH,用作搜索前缀的附加列表。
CMAKE_PROGRAM_PATH用分号分隔的目录列表,指定find_program()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_PROGRAM_PATH,用作搜索目录的附加列表。
CMAKE_PROJECT_INCLUDE要作为所有project()命令调用的最后一步包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT_INCLUDE_BEFORE要作为所有project()命令调用的第一步包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。。
CMAKE_PROJECT__INCLUDECMake语言文件或模块,作为指定<project-NAME>为项目名称的任何project()命令调用的最后一步。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT__INCLUDE_BEFORE作为任何指定<project-NAME>为项目名称的project()命令调用的第一步,要包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT_TOP_LEVEL_INCLUDES要作为第一个project()调用的一部分包含的CMake语言文件的分号分隔列表。在读取工具链文件(如果指定了一个)并设置平台变量之后,但在启用任何语言之前,这些文件将立即包含在内。因此,可能不会设置特定于语言的变量,包括CMAKE__COMPILER。
CMAKE_REQUIRE_FIND_PACKAGE_用于调用find_package()的变量REQUIRED。 通过将变量CMAKE_REQUIRE_FIND_PACKAGE_设置为TRUE,可以将项目中的每个非REQUIRED find_package()调用转换为REQUIRED。这可以用来断言关于构建环境的假设,并确保如果这些假设不成立,构建将提前失败。
CMAKE_SKIP_INSTALL_ALL_DEPENDENCY不要让安装目标依赖于所有目标。 默认情况下,安装目标取决于所有目标。这样做的效果是,当调用makeinstall或构建install时,首先构建所有目标,然后开始安装。如果CMAKE_SKIP_INSTALL_ALL_DEPENDENCY设置为TRUE,则不会创建此依赖项,因此安装过程将立即启动,与项目是否已完全构建无关。
CMAKE_STAGING_PREFIX此变量可以设置为交叉编译时要安装到的路径。如果CMAKE_SYSROOT中的路径是只读的,或者应该保持原始状态,那么这可能很有用。 CMAKE_STAGING_PREFIX位置也被find_*命令用作搜索前缀。这可以通过设置CMAKE_FIND_NO_INSTALL_PREFIX变量来控制。 如果传递给链接器的任何RPATH/RUNPATH条目包含CMAKE_STAGING_PREFIX,则匹配的路径片段将替换为CMAKE_INSTALL_PREFIX。
CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS此变量包含一个env-var列表,作为语法为var=value的令牌列表
CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则Sublime Text 2额外生成器会将构建树从.spreme项目中排除(如果它在源树中)。
CMAKE_SUPPRESS_REGENERATION如果默认情况下CMAKE_SUPPRESS_REGERATION为OFF,则CMAKE会添加一个所有其他目标所依赖的特殊目标,该目标将检查生成系统,并在目标规范源更改时重新运行CMAKE以重新生成生成系统。 如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则CMake将不会向生成系统添加重新生成目标,也不会执行任何生成系统检查。
CMAKE_SYSROOT在–sysroot标志中传递给编译器的路径。 CMAKE_SYSROOT内容在–SYSROOT标志中传递给编译器(如果支持的话)。如果安装时需要,该路径也会从RPATH/RUNPATH中剥离。CMAKE_SYSROOT还用于为find_*命令搜索的路径添加前缀。 只能在CMAKE_TOOLCHAIN_FILE变量指定的工具链文件中设置此变量。
CMAKE_SYSROOT_COMPILE编译源文件时在–sysroot标志中传递给编译器的路径。这与CMAKE_SYSROOT相同,但仅用于编译源,而不用于链接。
CMAKE_SYSROOT_LINK链接时在–sysroot标志中传递给编译器的路径。这与CMAKE_SYSROOT相同,但仅用于链接而非编译源。
CMAKE_SYSTEM_APPBUNDLE_PATHfind_program()和find_package()命令使用的macOS应用程序包的搜索路径。默认情况下,它包含当前系统的标准目录。项目不打算修改它,请使用CMAKE_APPBUNDLE_PATH。
CMAKE_SYSTEM_FRAMEWORK_PATHfind_library()、find_package()、find_path()和find_file()命令使用的macOS框架的搜索路径。默认情况下,它包含当前系统的标准目录。项目不打算修改它,请使用CMAKE_FRAMEWORK_PATH。
CMAKE_SYSTEM_IGNORE_PATH以分号分隔的目录列表将被各种find_*()命令忽略。
CMAKE_SYSTEM_IGNORE_PREFIX_PATH要由find_program()、find_library()、find_file()和find_path()命令忽略的搜索前缀的分号分隔列表。find_package()命令的Config模式也会忽略前缀(Module模式不受影响)。
CMAKE_SYSTEM_INCLUDE_PATH用分号分隔的目录列表,指定find_file()和find_path()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_SYSTEM_LIBRARY_PATH用分号分隔的目录列表,指定find_library()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_SYSTEM_PREFIX_PATH用分号分隔的目录列表,指定find_package()、find_program()、find_library()、find_file()和find_path()命令要搜索的安装前缀。每个命令都会根据自己的文档中的指定添加适当的子目录(如bin、lib或include)。 默认情况下,它包含当前系统的系统目录、CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX。通过在第一次project()调用之前设置CMAKE_FIND_NO_INSTALL_PREFIX变量,可以排除安装和暂存前缀。 CMAKE_SYSTEM_PREFIX_PATH中包含的系统目录是通常包括已安装软件的位置。一个示例是基于UNIX的平台的/usr/local。除了标准平台位置外,CMake还将根据环境变量向CMake_SYSTEM_PREFIX_PATH添加值。CMake使用的环境变量和搜索位置可能会随着时间的推移而变化,因为平台及其约定: CrayLinuxEnvironment: ENV{SYSROOT_DIR}/ ENV{SYSROOT_DIR}/usr ENV{SYSROOT_DIR}/usr/local Darwin: ENV{SDKROOT}/usr When CMAKE_OSX_SYSROOT is not explicitly specified. OpenBSD: ENV{LOCALBASE} Unix: ENV{CONDA_PREFIX} when using a conda compiler MSYSTEM environment with MinGW toolchain: New in version 3.28. ENV{MSYSTEM_PREFIX}/local ENV{MSYSTEM_PREFIX} Windows: ENV{ProgramW6432} ENV{ProgramFiles} ENV{ProgramFiles(x86)} ENV{SystemDrive}/Program Files ENV{SystemDrive}/Program Files (x86)
CMAKE_SYSTEM_PROGRAM_PATH用分号分隔的目录列表,指定find_program()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_TLS_CAINFO指定file(DOWNLOAD)和file(UPLOAD)命令的TLS_CAINFO选项的默认值。默认情况下未设置。 ExternalProject和FetchContent模块也使用此变量进行内部文件调用file(DOWNLOAD)。
CMAKE_TLS_VERIFY为file(DOWNLOAD)和file(UPLOAD)命令的TLS_VERIFY选项指定默认值。如果未设置,则默认设置为禁用。 ExternalProject和FetchContent模块也使用此变量进行内部文件调用file(DOWNLOAD)。 TLS验证可以帮助提供连接到所需服务器的信心。下载已知内容时,还应该使用文件哈希进行验证。
CMAKE_USER_MAKE_RULES_OVERRIDE指定替代平台信息的CMake文件。
CMAKE_WARN_DEPRECATED是否对不推荐使用的功能发出警告。
CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION每次遇到具有绝对install DESTINATION的文件时,请要求cmake_install.cmake脚本发出警告。 此变量由CMake生成的CMake_install.CMake脚本使用。如果在运行脚本时将此变量设置为ON,则可能会收到来自脚本的警告消息。
CMAKE_XCODE_GENERATE_SCHEME如果启用,Xcode生成器将生成模式文件。这些对于从命令行调用分析、归档、构建以进行测试和测试操作非常有用。
CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY如果启用,Xcode生成器将只为最顶层的project()命令生成一个Xcode项目文件,而不是为每个project()。
CMAKE_XCODE_LINK_BUILD_PHASE_MODE此变量用于初始化目标上的XCODE_LINK_BUILD_PHASE_MODE属性。它会影响Xcode生成器用来链接不同类型库的方法。其默认值为NONE。
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER是否在生成的Xcode方案的Diagnostics部分启用Address Sanitizer。 此变量初始化所有目标上的XCODE_SCHEME_ADDRESS_SANITIZER属性。
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN在生成的Xcode方案的Diagnostics部分中,是否启用返回后检测堆栈的使用。
CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING在生成的Xcode方案的“选项”部分中使用文档版本浏览器时,是否启用“允许调试”。
CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER是否在生成的Xcode方案的诊断部分禁用主线程检测器。
CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS是否在生成的Xcode方案的“诊断”部分中启用“动态库加载”。
CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE是否在生成的Xcode方案的诊断部分中启用动态链接器API使用。
CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION生成的Xcode方案的“选项”部分中的Metal:neneneba API验证的属性值。
CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE生成的Xcode方案的“选项”部分中GPU帧捕获的属性值。示例值为 Metal 和Disabled
CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION生成的Xcode方案的“选项”部分中 Metal: Shader Validation的属性值。
CMAKE_XCODE_SCHEME_ENVIRONMENT指定应添加到生成的Xcode方案的Arguments部分的环境变量。 如果设置为环境变量和MYVAR=值形式的值的列表,则这些环境变量将添加到方案中。
CMAKE_XCODE_SCHEME_GUARD_MALLOC是否在生成的Xcode方案的Diagnostics部分启用Guard Malloc。 此变量初始化所有目标上的XCODE_SCHEME_GUARD_MALLOC属性。
CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION设置生成配置以运行目标。 此变量初始化所有目标上的XCODE_SCHEME_LAUNCH_CONFIGURATION属性。
CMAKE_XCODE_SCHEME_LAUNCH_MODE生成的Xcode方案的“信息”部分中Launch的属性值。 此变量初始化所有目标上的XCODE_SCHEME_LAUNCH_MODE属性。
CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP是否在生成的Xcode方案的“诊断”部分中启用“主线程检测器”选项“在出现问题时暂停”。 此变量初始化所有目标上的XCODE_SCHEME_MAIN_THRAD_CHECKER_STOP属性。
CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES是否在生成的Xcode方案的Diagnostics部分启用Malloc Guard Edges。
CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE是否在生成的Xcode方案的诊断部分启用Malloc Scribble。
CMAKE_XCODE_SCHEME_MALLOC_STACK是否在生成的Xcode方案的Diagnostics部分启用Malloc Stack。
CMAKE_XCODE_SCHEME_THREAD_SANITIZER是否在生成的Xcode方案的Diagnostics部分启用Thread Sanitizer。
CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP是否启用Thread Sanitizer-在生成的Xcode方案的Diagnostics部分中的问题上暂停。
CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP是否在生成的Xcode方案的Diagnostics部分中启用Undefined Behavior Sanitizer选项Pause on issues。
CMAKE_XCODE_SCHEME_WORKING_DIRECTORY在生成的Xcode方案中指定运行和配置文件操作的工作目录。
CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS是否在生成的Xcode方案的Diagnostics部分启用Zombie Objects。
CMAKE_XCODE_XCCONFIG如果设置,Xcode生成器将指定的文件注册为全局XCConfig文件。有关目标级别XCConfig文件,请参阅XCODE_XCConfig目标属性。
_ROOT对find_package()的调用将在_ROOT CMake变量指定的前缀中进行搜索,其中<PackageName]是给find_packaging()调用的(保留大小写)名称,_ROOT是文字。例如,find_package(Foo)将搜索Foo_ROOT CMake变量中指定的前缀(如果已设置)。

相关文章:

CMake中的变量: 改变构建行为的变量

文章目录 变量名称描述BUILD_SHARED_LIBS全局标志&#xff0c;用于在启用时使add_library()创建共享库。 如果存在并且为true&#xff0c;则这将导致所有库被构建为共享库&#xff0c;除非该库被明确添加为静态库。这个变量通常作为option()添加到项目中&#xff0c;这样项目的…...

台式电脑怎么无损备份迁移系统到新硬盘(使用傲梅,免费的就可以)

文章目录 前言一、想要将源硬盘上的系统原封不动地迁移到新硬盘上二、准备工作2.具体步骤 总结 前言 半路接手公司一台台式电脑&#xff0c;C盘&#xff08;120g&#xff09;爆红&#xff0c;仅剩几个G&#xff0c;优化了几次&#xff0c;无果后。准备换一个大一点的增到500g。…...

【紫光同创国产FPGA教程】【PGC1/2KG第七章】7.数字钟实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGC1/2KG开发平台&#xff08;盘古1K/2K&#xff09; 一&#xff1a;盘古1K/2K开发板&#xff08;紫光同创PGC…...

【星海随笔】git的使用

1.在终端&#xff0c;检查git是否安装 git --version 2.没有安装的话去&#xff0c;官网&#xff0c;下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…...

安卓常见设计模式------装饰器模式(Kotlin版)

1. W1 是什么&#xff0c;什么是装饰器模式&#xff1f; 思想&#xff1a;动态地给对象添加额外的功能&#xff0c;通过将对象包装在一个装饰器类中&#xff0c;使装饰器类在不改变原始对象结构的情况下&#xff0c;扩展其功能。 2. W2 为什么&#xff0c;为什么需要使用装饰…...

将网站上的点击作为转化操作进行跟踪-官方指导文档

您可以使用转化跟踪功能&#xff0c;在用户点击您网站上的某个按钮或链接时进行跟踪。例如&#xff0c;您可以在用户点击“立即购买”按钮或点击您移动网站上的电话号码时进行跟踪。 本文介绍如何添加和修改转化跟踪代码&#xff0c;以便跟踪客户在您网站上的点击操作。如果希…...

Go相关命令说明

目录 Go相关命令说明go mod tidy &#xff1a;清理未使用依赖项&#xff0c;并更新模块文件主要功能好处 go clean -modcache &#xff1a;清除模块缓存go clean -testcache &#xff1a;清除测试缓存go test -v ./client &#xff1a;测试当前目录下client目录中的所有测试函数…...

3D全景技术,为我们打开全新宣传领域

随着科技的发展&#xff0c;3D全景技术正在融入我们的生活&#xff0c;这种全新视觉体验方式为我们打开了一扇全新的宣传领域&#xff0c;可以让我们多方位、多视角地探索各个行业&#xff0c;无论是对教育、商业、还是其他领域&#xff0c;都产生了深远的影响。 3D全景技术结合…...

【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割10(测试推理篇)

对于直接将裁剪的patch,一个个的放到训练好的模型中进行预测,这部分代码可以直接参考前面的训练部分就行了。其实说白了,就是验证部分。不使用dataloader的方法,也只需要修改少部分代码即可。 但是,这种方法是不end to end的。我们接下来要做的,就是将一个CT数组作为输入…...

PyCharm+Miniconda3安装配置教程

PyCharm是Python著名的Python集成开发环境&#xff08;IDE&#xff09; conda有Miniconda和Anaconda&#xff0c;前者应该是类似最小化版本&#xff0c;后者可能是功能更为强大的版本&#xff0c;我们这里安装Miniconda 按官方文档的说法conda相当于pip与virtualenv的结合&am…...

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

一、 一条简单SQL在MySQL执行过程 一张简单的图说明下&#xff0c;MySQL架构有哪些组件和组建间关系&#xff0c;接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM employee WHERE name Lucy AND age > 18 GROUP BY department_id其中name为索引&a…...

小程序day05

使用npm包 Vant Weapp 类似于前端boostrap和element ui那些的样式框架。 安装过程 注意:这里建议直接去看官网的安装过程。 vant-weapp版本最好也不要指定 在项目目录里面先输入npm init -y 初始化一个包管理配置文件: package.json 使用css变量定制vant主题样式&#xff0…...

Docker两个容器互相请求接口

BEGIN 环境&#xff1a;Docker-Windows-Hyperf 1. 过以下命令查看Docker中的所有网络 docker network ls这个命令会列出所有的Docker网络&#xff0c;包括其ID、名称、驱动以及作用范围 在 Docker 中&#xff0c;容器通过 Docker 网络进行相互通信&#xff1b;在 Docker 中有…...

UML与PlantUML简介

UML与PlantUML 1、UML与PlantUML概述2、PlantUML使用 1、UML与PlantUML概述 UML&#xff08;Unified Modeling Language&#xff09;是一种统一建模语言&#xff0c;为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言&#xff0c;独立于任何具体程序设计语言…...

面试--springboot基础

1、约定优于配置&#xff0c;理解 是一种软件设计的范式&#xff0c;减少开发人员对于配置项的维护&#xff0c;更加聚焦在业务逻辑上 基于spring框架开发web项目&#xff0c;只需要做一次配置 springboot starter启动依赖&#xff0c;帮我们管理jar包版本 当前应用依赖spring…...

“高端化”围城中,方太集团茅忠群的理想与现实

撰稿|行星 来源|贝多财经 “成为一家伟大的企业”&#xff0c;这是深耕厨电领域27年的方太集团&#xff08;下称“方太”&#xff09;矢志不渝的宏伟愿景。 在历经厨电行业十余年的高速发展期后&#xff0c;面临市场热度渐退、赛道高手林立的局面&#xff0c;在行业逆流中坚…...

Linux文件管理知识:文本处理

上篇文章详细介绍了Linux系统中查找文件的工具或者命令程序的相关操作内容介绍。那么&#xff0c;今天呢&#xff0c;这篇文章围绕Linux系统中文本处理来阐述。 众所周知&#xff0c;所有Linux操作系统都离不开一个核心原则&#xff0c;那就是它是由很多种文件组成的&#xff0…...

flink的带状态的RichFlatMapFunction函数使用

背景 使用RichFlatMapFunction可以带状态来决定如何对数据流进行转换&#xff0c;而且这种用法非常常见&#xff0c;根据之前遇到过的某个key的状态来决定再次遇到同样的key时要如何进行数据转换&#xff0c;本文就来简单举个例子说明下RichFlatMapFunction的使用方法 RichFl…...

MySQL的安装使用(入学篇)

目录 1 MySQL安装 1.1 安装epel源 1.2 安装MySQL Repository 1.3 安装MySQL官方yum源 1.4 安装服务端、客户端 1.5 启动MySQL服务 2 MySQL 使用 2.1 获取初始登录密码 2.2 登录MySQL数据库 2.3 修改密码 2.4 退出数据库 2.5 使用新密码登录数据库 2.6 重启数据库 2.7 创建数据…...

面试复习整理

redis持久化方式和原理 Redis持久化是指将Redis内存中的数据以某种形式保存到磁盘上&#xff0c;以保证在Redis重启后数据不会丢失。Redis支持两种持久化方式&#xff1a;RDB&#xff08;Redis DataBase&#xff09;和AOF&#xff08;Append Only File&#xff09;。 RDB持久…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...