CMake是一个可扩展的开源系统,它以操作系统和独立于编译器的方式管理构建过程。与许多跨平台系统不同,CMake设计为与本机构建环境结合使用。放置在每个源目录中的简单配置文件(称为CMakeLists.txt文件)用于生成标准构建文件(例如Unix上的makefile和Windows MSVC中的项目/工作区),这些文件通常以常规方式使用。CMake可以生成本机构建环境,该环境将编译源代码,创建库,生成包装程序并以任意组合构建可执行文件。CMake支持就地和非就地构建,因此可以从一个源代码树支持多个构建。CMake还支持静态和动态库构建。CMake的另一个不错的功能是它生成一个缓存文件,该文件旨在与图形编辑器一起使用。例如,当CMake运行时,它将查找文件,库和可执行文件,并且可能会遇到可选的构建指令。该信息被收集到缓存中,用户可以在生成本机构建文件之前对其进行更改。
CMake旨在支持依赖于多个库的复杂目录层次结构和应用程序。例如,CMake支持由多个工具箱(即库)组成的项目,其中每个工具箱可能包含多个目录,并且应用程序取决于这些工具箱以及其他代码。CMake还可以处理必须构建可执行文件才能生成代码的情况,然后将这些代码编译并链接到最终应用程序中。由于CMake是开源的,并且具有简单,可扩展的设计,因此可以根据需要扩展CMake以支持新功能。使用CMake很简单。通过在组成项目的每个目录(包括子目录)中创建一个或多个CMakeLists.txt文件来控制构建过程。每个CMakeLists.txt都包含一个或多个命令。每个命令的格式为COMMAND(args…),其中COMMAND是命令的名称,而args是由空格分隔的参数列表。CMake提供了许多预定义的命令,但是如果需要,您可以添加自己的命令。此外,高级用户可以为特定的编译器/ OS组合添加其他生成文件生成器。(尽管当前支持Unix和MSVC ++,但其他开发人员正在添加其他编译器/ OS支持。)您可能希望研究示例页面以查看更多详细信息。
CMake起源
CMake的创建是为了满足由NLM作为可见人类项目的一部分提供的Insight细分和注册工具包(ITK)对强大,跨平台构建环境的需求。它受到Ken Martin和其他开发人员创建的名为pcmaker的早期系统的影响,该系统支持Visualization Toolkit(VTK)开源3D图形和可视化系统。为了创建CMake,Kitware的Bill Hoffman结合了pcmaker的一些关键思想,并添加了他自己的许多思想,以采用Unix configure的某些功能。工具。最初的CMake实施是在2000年中期,并在2001年初进行了加速开发。许多改进归功于其他将CMake集成到他们自己的系统中的开发人员的影响。例如,VXL软件社区采用CMake作为其构建环境,贡献了许多基本功能。布拉德·金(Brad King)添加了一些功能来支持CABLE,自动包装环境和GCC-XML,并且GE Corporate R&D要求其测试基础结构(DART)的支持。添加了其他功能,以支持VTK的构建环境向CMake的过渡,并支持ParaView,这是一种支持高级计算实验室的并行可视化系统。 在洛斯阿拉莫斯国家实验室。
特别声明
本站提供的CMake,源自互联网,在2020-11-05 09:01:08收录时,该网页上的内容,都属于合规合法,资源猫网遵守和尊重国家法律法规对著作权人和版权的保护,如有侵权内容和资源猫网无关,资源猫网会第一时间将含有违法信息和侵权内容的网站收录页面进行断链以及彻底删除处理。因为网址导航的特殊性,收录的网站域名会有过期、删除、重新注册等情况,资源猫网不声明也不保证该链接的正确性和可靠性,请仔细考虑清楚后,再进行访问,如有风险自行承担。
123云盘是一款专注于大文件传输分发的云存储服务产品,它以空间大、不限速、无广告为特点,旨在为用户提供高效便捷的文件存储和传输
发布时间:12-27问真八字排盘软件是一款支持安卓、iOS和网页版的专业命理应用,是专业命理师的首选。除了提供八字命盘的准确信息外,还配备了问真罗
发布时间:02-13欢迎使用MikuTools,目前共开发了数十款有趣的小功能,数量还在持续增加中。如果觉得某一款不错,不妨安利给他人使用。
发布时间:02-13ChatGPT是由美国人工智能公司OpenAI开发和训练的,OpenAI的幕后老板是硅谷投资者山姆·阿尔特曼和亿万富翁埃隆·马斯克。
发布时间:02-02Science/AAAS 同行评审期刊提供有影响力的研究、每日新闻、专家评论和职业资源。
发布时间:01-31