加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

制作或制作.我需要两个吗?

发布时间:2020-12-15 21:25:25 所属栏目:安全 来源:网络整理
导读:新手问题.我最近遇到了一个包含大量文件和外部库的项目.其中一些库包含Makefile和CMakeLists.txt. 我正在建立一个涉及外部图书馆的类似项目.是否有必要同时学习CMake和make.或者CMake是否足够? 解决方法 How to frame the concept behind CMake 无需学习编
新手问题.我最近遇到了一个包含大量文件和外部库的项目.其中一些库包含Makefile和CMakeLists.txt.
我正在建立一个涉及外部图书馆的类似项目.是否有必要同时学习CMake和make.或者CMake是否足够?

解决方法

How to frame the concept behind CMake

无需学习编写makefile,因为CMake是abstraction layer或“meta-make”为您生成makefile.作为任何抽象层,您只需要使用其功能进行学习.但是你还需要了解它的开发任务.在这种情况下,What is a build tool?或What is a native build environment?

What does the “c” in cmake stand for?

但是cmake – 与ctest,cpack和cdash结合 – 远不止于此,它(大部分)确实消除了学习编译器/链接器开关,平台/框架处理库/可执行文件及其安装等的需要.

>交叉编译

>它支持CMake Generators中汇总的许多不同的构建环境输出格式
>它确实例如在CMake Compile Features中抽象出特定的编译器开关

>跨平台

>它适用于所有类型的操作系统(概述于CMake’s Download Page),具有不同的设置
>它适用于或直接集成到许多IDE或editors中,例如,Visual Studio或CLion
>它可以交叉编译到特定的目标平台,例如Android总结于CMake Toolchains

>跨语言

>它主要支持C/C++,但也支持例如Asm,RC,Fortran和CMake version 3.8 C#
>它确实消除了学习其他脚本语言(通常用于执行构建前或构建后步骤)的需要,因为它嵌入了中型脚本语言

Difference between using Makefile and cmake to compile the code

根据我在项目中使用CMake的经验:

>缺点:您需要对所有目标环境进行测试(诚然,这对CMake来说并不具体).在封闭的环境中(例如在公司内部),它相对容易维护,但在例如一个开源设置,总会有一个或其他先例,你需要稍微调整一下你的CMake脚本.
>好处:CMake在C/C++项目中得到广泛使用/支持,它使我作为项目的潜在用户可以选择采用我的构建环境并选择工具(例如我在项目中用ninja替换了make).

参考

> C++ Build Systems – What to use?
> C++ build systems

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读