
cmake(cmake编译器)
v3.7.2 官方版(附使用教程)- 软件大小:43.6 MB
- 更新日期:2019-09-18 11:04
- 软件语言:简体中文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:

软件介绍 人气软件 下载地址
CMake是一个专业的开源应用程序,其目的是帮助您配置和生成软件包的构建文件。它允许您从同一源树创建构建,生成交叉编译,在源树外部构建目录树,生成用于查找可执行文件,文件和库的缓存,使用复杂的目录层次结构和依赖于多个库的工具,如以及为许多平台和IDE生成makefile,包括Unix,Windows,Mac OS X,OS / 2,MSVC,Cygwin,MinGW和Xcode。该实用程序具有简洁直观的GUI,允许您直接从主窗口配置大多数主要参数,并支持您为包含CMakeLists纯文本文件的项目选择源文件夹,此外,您可以指定生成项目的构建目录。为了读取所有输入文件并识别项目中使用的变量,您需要按“配置”按钮。使用红色显示变量,您需要重复配置过程,直到不再有红色条目。只要主面板中没有红色条目,您就可以激活将文件写入指定目录的构建过程。值得一提的是,其还具备了可以包含文件/库和可执行文件、运行一组外部程序、使用条件构建、从单个源树创建多个编译树,以及就地处理和外部处理地方建设等功能。总而言之,CMake附带了一套先进的功能,可帮助您管理依赖于多个库的软件应用程序的构建过程。

软件功能
一个功能强大的开源软件编译环境,专门为开发人员提供检查和打包代码的方法。
软件开发通常是一个漫长的过程,甚至在接近可以测试的表单之前就涉及几个步骤。生成构建文件和处理源代码,保持其良好的结构和组织需要专门的实用程序,用于各个发展阶段。
通常,将项目放在一起需要生成所谓的makefile和'make'程序,使所有内容都变成一个整体。如果源代码文件是在这些'makefiles'中组织的,那么它们可以更容易编译,这是CMake帮助您实现的最终目标。
该工具作为GUI应用程序提供,提供了一种使用最少配置生成构建文件的相当简单的方法。这些功能整齐地放在主窗口中,因此整个过程应该非常简单。
您要做的第一件事是浏览源文件夹并确保CMakeLists.txt文件存储在该目录中,否则操作将无法完成。
解决这些问题后,您可以指定将二进制文件发送到的输出位置。剩下的任务需要对配置进行一些修改,但这不应该是担心的原因,因为大部分都是自动化的。
因此,只要您点击“配置”,CMake就会继续读取源文件夹中包含的文件,以便检测项目的变量,它将显示为红色。彻底检查它们并确保分配给每个值的值准确无误后,可以按“生成”按钮并在指定位置创建构建文件。
总而言之,可CMake确实是一个强大的工具,但主要针对那些必须执行高技术流程的开发人员和高级用户。
软件特色
支持复杂的大型构建环境。CMake已经在几个大型项目中得到证实。
生成本机构建文件(例如,Unix上的makefile; MS Visual C ++上的工作区/项目)。因此,标准工具可用于任何平台/编译器配置。
强大的命令包括定位包含文件,库,可执行文件的能力; 包括封装标准功能的外部CMake文件; 测试系统的接口; 支持具有变量继承的递归目录遍历; 可以运行外部程序; 支持条件构建; 支持正则表达式扩展; 等等。
支持就地和非现场构建。可以从单个源树中获得多个编译树。
可以轻松扩展以添加新功能。
CMake是开源的。
CMake使用设计为与图形编辑器连接的缓存来运行。缓存提供可选的交互以有条件地控制构建过程。
使用方法
1.选择项目的源目录。 这应该包含CMakeLists。 该项目的txt文件。

2、选择项目的构建目录。这是将构建项目的目录。它可以是与源目录相同或不同的目录。为便于清理,建议使用单独的构建目录。如果目录不存在,CMake将创建该目录。

3、选择源目录和二进制目录后,即可按“配置”按钮。 这将导致CMake读取所有输入文件并发现项目使用的所有变量。 第一次显示变量时,它将为红色。 用户应检查红色变量,确保值正确。 对于某些项目,配置过程可以是迭代的,因此继续按配置按钮,直到不再有红色条目。

4、一旦不再有红色条目,您应该单击Generate按钮。这会将构建文件写入构建目录。

更新日志
CMake现在支持Android的Cross Compiling和简单的工具链文件。
当使用具有必要功能的“忍者”工具时,“Ninja”生成器学会了有条件地支持Fortran。有关详细信息,请参
“if()”命令获得了新的布尔比较操作“LESS_EQUAL”,“GREATER_EQUAL”,“STRLESS_EQUAL”,“STRGREATER_EQUAL”,“VERSION_LESS_EQUAL”和“VERSION_GREATER_EQUAL”。
“try_compile()”命令源文件签名现在在生成的测试项目中表示特定于配置的标志(例如“CMAKE__FLAGS_DEBUG”)。以前只使用当前工具链的默认此类标志。请参阅策略“CMP0066”。
“工具链文件”现在可以设置“CMAKE_EXE_LINKER_FLAGS_INIT”,“CMAKE_SHARED_LINKER_FLAGS_INIT”和“CMAKE_MODULE_LINKER_FLAGS_INIT”变量,以在第一次在构建树中启用语言时初始化“CMAKE_EXE_LINKER_FLAGS”,“CMAKE_SHARED_LINKER_FLAGS”和“CMAKE_MODULE_LINKER_FLAGS”缓存条目。
CTest现在通过新的“FIXTURES_SETUP”,“FIXTURES_CLEANUP”和“FIXTURES_REQUIRED”测试属性支持测试装置。当使用正则表达式或“-rerun-failed”限制要运行的测试时,如果任何测试需要该夹具,则夹具的设置和清理测试将自动添加到执行集中。
对于新版本的CMake,我们不再为“cmake.org”提供Linux i386二进制文件。
已删除Vim支持文件“cmake-indent.vim”,“cmake-syntax.vim”和“cmake-help.vim”,以支持vim-cmake-syntax项目现在提供的文件。
支持使用一些编译器构建CMake本身(CMake仍支持使用这些编译器为其他项目生成构建系统):
Visual Studio 7.1和2005 - 取代VS 2008及更高版本
MinGW.org mingw32 - 被MSYS2 mingw32和mingw64取代
平台:
CMake现在支持Android的Cross Compiling和简单的工具链文件。
现在,AIX上支持Clang编译器。
命令:
“add_custom_command()”命令获得了一个新的“DEPFILE”选项,该选项与“Ninja”生成器一起使用,为构建工具提供隐式依赖信息。
“cmake_parse_arguments()”命令获得了一个新的“PARSE_ARGV”模式,直接从“function()”体内的“ARGC”和“ARGV#”变量读取参数。
“export()”命令获得了一个“ANDROID_MK”选项,用于生成引用CMake构建的库的“Android.mk”文件,作为Android NDK构建系统的预构建。
“file(DOWNLOAD)”和“file(UPLOAD)”命令获得了“HTTPHEADER”和“USERPWD:”选项。
当构建以32位体系结构为目标时,学习“find_library()”和“find_package()”命令以在“lib32 /”目录中进行搜索。请参见“FIND_LIBRARY_USE_LIB32_PATHS”全局属性。
“find_package()”命令通过设置两个新变量“CMAKE_FIND_PACKAGE_SORT_ORDER”和“CMAKE_FIND_PACKAGE_SORT_DIRECTION”,获得了通过“NAME”或“NATURAL”排序对兼容库进行排序的可能性。
“if()”命令获得了新的布尔比较操作“LESS_EQUAL”,“GREATER_EQUAL”,“STRLESS_EQUAL”,“STRGREATER_EQUAL”,“VERSION_LESS_EQUAL”和“VERSION_GREATER_EQUAL”。
“install()”命令获得了一个“EXPORT_ANDROID_MK”子命令,用于安装引用已安装库的“Android.mk”文件作为Android NDK构建系统的预构建。
“string(TIMESTAMP)”和“file(TIMESTAMP)”命令获得了对“%a”和“%b”占位符的支持。这些是缩写的工作日和月份名称。
“try_compile()”命令源文件签名现在在生成的测试项目中表示特定于配置的标志(例如“CMAKE__FLAGS_DEBUG”)。以前只使用当前工具链的默认此类标志。请参阅策略“CMP0066”。
变量:
添加了变量“CMAKE_FIND_PACKAGE_SORT_ORDER”以控制“find_package()”命令的排序模式。
添加了变量“CMAKE_FIND_PACKAGE_SORT_DIRECTION”以控制“find_package()”命令的排序方向。
“工具链文件”现在可以设置“CMAKE__FLAGS_INIT”变量,以在构建树中首次启用语言时初始化“CMAKE__FLAGS”缓存条目。
“工具链文件”现在可以设置“CMAKE_EXE_LINKER_FLAGS_INIT”,“CMAKE_SHARED_LINKER_FLAGS_INIT”和“CMAKE_MODULE_LINKER_FLAGS_INIT”变量,以在第一次在构建树中启用语言时初始化“CMAKE_EXE_LINKER_FLAGS”,“CMAKE_SHARED_LINKER_FLAGS”和“CMAKE_MODULE_LINKER_FLAGS”缓存条目。
属性:
在Apple平台上,“BUNDLE_EXTENSION”目标属性现在也适用于Frameworks和App Bundles。
添加了“BINARY_DIR”目录属性以获取与读取该属性的源目录对应的二进制目录的绝对路径。
添加了“BUILDSYSTEM_TARGETS”目录属性以获取项目在目录中添加的逻辑构建系统目标名称列表。
引入了“LINK_WHAT_YOU_USE”目标属性并支持“CMAKE_LINK_WHAT_YOU_USE”变量来检测(在UNIX上)通过运行“ldd -r -u”链接但不需要的共享库。
添加了“SOURCE_DIR”目录属性以获取与目录关联的源目录的绝对路径。
添加了“SUBDIRECTORIES”目录属性以获取目录中项目添加的子目录列表。
添加了“VS_SDK_REFERENCES”目标属性,以告知Visual Studio生成器引用指定的SDK。
创建了“VS_TOOL_OVERRIDE”源文件属性,以告知Visual Studio生成器用于源文件的工具。
“WINDOWS_EXPORT_ALL_SYMBOLS”目标属性现在适用于设置了“ENABLE_EXPORTS”属性的可执行目标。
添加了“XCODE_FILE_ATTRIBUTES”源文件属性,以告知“Xcode”生成器在文件的Xcode项目属性中生成自定义内容。
模块:
添加了“AndroidTestUtilities”模块以管理将测试数据传输到Android设备。
“CheckFortranSourceCompiles”模块宏“CHECK_Fortran_SOURCE_COMPILES”获得了“SRC_EXT”选项,以指定自定义测试Fortran源文件扩展名。
“ExternalProject”模块获得了“HTTP_USERNAME”和“HTTP_PASSWORD”选项来设置http下载凭据。
“ExternalProject”模块获得了一个“HTTP_HEADER”选项来添加http下载头。
“FindBISON”模块“BISON_TARGET”宏学习了一个新的“REPORT_FILE”选项来指定bison“--report-file =”选项。
“FindBZip2”模块现在提供导入的目标。
引入了“FindICU”模块来查找Unicode的国际组件(ICU)库和程序。
“FindMatlab”模块学会了查找SIMULINK组件。
“FindOpenCL”模块现在提供导入的目标。
“FindOpenMP”模块学会了从编译器中检测OpenMP版本(规范日期)。
添加了“FindVulkan”模块。
“GenerateExportHeader”模块学习了一个新的“CUSTOM_CONTENT_FROM_VARIABLE”选项,以指定包含自定义内容的变量,以包含在生成的标题中。
“GNUInstallDirs”模块获得了一个新的“GNUInstallDirs_get_absolute_install_dir()”命令。
“UseJava”模块获得API以“导出”jar目标以供外部CMake项目使用。请参阅“install_jar_exports”和“export_jars”函数。
CTEST:
CTest现在通过新的“FIXTURES_SETUP”,“FIXTURES_CLEANUP”和“FIXTURES_REQUIRED”测试属性支持测试装置。当使用正则表达式或“--rerun-failed”来限制要运行的测试时,如果任何测试需要该夹具,则夹具的设置和清理测试将自动添加到执行集中。
“ctest_configure()”,“ctest_build()”,“ctest_test()”,“ctest_coverage()”和“ctest_upload()”命令获得了一个新的“CAPTURE_CMAKE_ERROR”选项,用于捕获命令运行时发生的任何错误变量并避免影响“ctest(1)”过程的返回码。
CPack:
CPack在OS X上获得了“productbuild”生成器,由“CPackProductBuild”模块配置。
CPack获得了一个新的“CPACK_PACKAGE_CHECKSUM”变量,可以为每个包文件生成校验和文件。
当归档格式设置为GNU tar时,“CPackDeb”模块学会了支持长文件名。请参阅“CPACK_DEBIAN_ARCHIVE_TYPE”
“CPackIFW”模块获得了一个新的“cpack_ifw_add_package_resources()”命令,以在安装程序二进制文件中包含其他资源。
“CPackIFW”模块“cpack_ifw_configure_component()”和“cpack_ifw_configure_component_group()”命令获得了一个新的“USER_INTERFACES”选项,用于向IFW安装程序添加附加页面列表。
“CPackRPM”模块学会了按需生成debuginfo包。请参阅“CPACK_RPM_DEBUGINFO_PACKAGE”及其每个组件版本。
“CPackRPM”模块学会了按需生成源rpm(SRPM)包。参见“CPACK_RPM_PACKAGE_SOURCES”,“CPACK_RPM_SOURCE_PKG_BUILD_PARAMS”和“CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX”。
CPack NSIS生成器现在支持“CPACK_NSIS__INSTALL_DIRECTORY”。这可用于设置组件特定的安装目录。
CPack WIX生成器现在支持“CPACK_WIX_SKIP_PROGRAM_FOLDER”以允许在ProgramFiles文件夹之外指定自定义绝对安装前缀。
CPack WIX生成器现在支持“CPACK_COMPONENT__DISABLED”。这可用于取消选择默认情况下安装的组件。
CPack WIX生成器现在支持Feature元素的“CPACK_WIX_PATCH_FILE”片段。
CPack WIX生成器现在支持“CPACK_WIX_ROOT_FEATURE_TITLE”和“CPACK_WIX_ROOT_FEATURE_DESCRIPTION”,以允许为根要素元素指定自定义标题和描述。
其他:
“cmake(1)”获得了“-E capabilities”选项,以提供cmake工具(可用生成器等)功能的机器可读(JSON)描述。
添加了新的“cmake-server(7)”模式,通过JSON协议向客户端提供有关CMake生成的构建系统的语义信息。目前,所有协议都是实验性的,可能会有变化
“cmake(1)”命令学习了“--trace-source =”选项。
“ccmake(1)”学会了支持类似vim的导航绑定。
“cmake-gui(1)”获得了一个按钮,用于打开Visual Studio生成器和“Xcode”生成器的生成项目文件。
已弃用和已删除的功能:
对于新版本的CMake,我们不再为“cmake.org”提供Linux i386二进制文件。
已删除Vim支持文件“cmake-indent.vim”,“cmake-syntax.vim”和“cmake-help.vim”,以支持vim-cmake-syntax项目现在提供的文件。
支持使用一些编译器构建CMake本身(CMake仍支持使用这些编译器为其他项目生成构建系统):
Visual Studio 7.1和2005 - 取代VS 2008及更高版本
MinGW.org mingw32 - 被MSYS2 mingw32和mingw64取代
其他变化:
Fortran依赖扫描程序学会了支持Fortran子模块的语法。
vim-cmake-syntax项目中的Vim支持文件“indent / cmake.vim”和“syntax / cmake.vim”现在随CMake一起发布。
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文