Questions tagged «make»

8
直接使用Make做过时了吗?[关闭]
因此,我遇到了很多有关直接创建makefile的评论/帖子/等等,以及在2015年如何做是一件愚蠢的事情。我知道诸如CMake之类的工具,实际上我经常使用CMake。事实是,CMake只是为您创建Makefile,并帮助消除了您自己做的乏味。当然,它还添加了许多其他强大的功能……但是最后它仍然是一个Makefile。 所以我的问题是,关于make的“过时”讨论是指整个Make实用程序,还是仅仅是手动编写自己的Makefile的想法?我根本不使用IDE进行C / C ++开发(只是emacs),所以我总是写Makefile。 如果Make被认为已经过时,那么C / C ++开发人员应该使用什么来构建小型个人项目?
31 c++  c  builds  make  cmake 

6
为什么makefile应该有一个“安装”目标?
来自C和C ++的世界,大多数构建系统都有一个install目标,尤其是Makefiles(例如,GNU建议在其中)或CMake。此目标在操作系统(例如,在C:\Program Files\Windows中)中复制运行时文件(可执行文件,库等)。 这感觉确实很棘手,因为对我而言,安装程序不是构建系统的责任(实际上是操作系统/程序包管理器的责任)。这也意味着构建系统或构建脚本必须知道已安装程序的组织,以及环境变量,注册表变量,符号链接,权限等。 充其量,构建系统应该有一个release目标,该目标将输出可安装的程序(例如.deb或.msi),然后请操作系统安装该程序。它还将允许用户无需键入即可卸载make uninstall。 所以,我的问题是:为什么构建系统通常建议有install目标?

8
学习makefile有多重要?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我主要是在业余爱好中从事C ++工作(我还在上学,因此没有一份真正的工作)。IDE为我生成了makefile,所以我想知道是否值得学习如何自己制作它们。我的意思是“值得学习”,我应该在继续学习c ++之前放弃所有东西并学习如何编写它们吗?学习它们真的很有必要吗?如果是这样,我应该了解它们(常规语法和理解它们的工作原理等)还是真正学习如何编写它们?
12 java  learning  c++  syntax  make 

4
是否应该使用“ make clean”而不是“ make”的通用规则?
我现在正在编写一个多文件程序,并且由于某种原因导致我的程序失败,显然只运行“ make”(因为在大多数情况下人们会直观地认为需要这样做)。我想我可以提供有关该问题的更多详细信息,但重要的是它在使用“ make clean”时确实可以运行。所以我想知道是否有人知道运行“ make clean”而不是“ make”的一般经验法则
11 c++  builds  make 

2
有多少个使用线程?
当我在台式机/笔记本电脑上(重新)构建大型系统时,我告诉我make使用多个线程来加快编译速度,如下所示: $ make -j$[ $K * $C ] $C应该在哪里指示机器拥有的内核数量(我们可以假设它是一位数字),而根据我的心情,$K我从2到有所不同4。 因此,例如,我可能会说make -j12我是否有4个核心,这表示make要使用多达12个线程。 我的基本原理是,如果仅使用$C线程,则内核将在进程忙于从驱动器中获取数据时处于空闲状态。但是,如果我不限制线程数(即make -j),那我就有浪费时间切换上下文,耗尽内存或什至更糟的风险。假设计算机具有$M千兆内存($M大约为10)。 所以我想知道是否有一个确定的策略来选择运行效率最高的线程数。

3
为什么“ make”中的增量构建不使用哈希算法?
我是的初学者,make我想知道何时使用make clean。 一位同事告诉我,增量构建make基于文件时间戳。因此,如果您在VCS中签出文件的旧版本,则它将具有“旧”时间戳,并将其标记为“无需重新编译此文件”。然后,该文件将不会包含在下一个版本中。 根据同一位同事的说法,这是使用的理由make clean。 无论如何,我make clean从其他StackExchange问​​题中大致得到了“何时使用” 问题的答案,但是我的另一个问题是: 为什么使用make依赖文件时间戳而不是例如SHA-1进行增量构建?例如,Git显示我们可以成功确定是否使用SHA-1修改了文件。 是为了速度问题吗?
10 builds  make 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.