标签: make

对于简单的项目,makefile 比“普通”bash 脚本提供了什么?

例如,如果我正在开发一个仅限前端的网站,我可能有几个CoffeeScript文件、几个Sass文件、几个 HTML 文件和一些图像。

CoffeeScript 文件需要编译为 JavaScript,Sass 文件需要编译为 CSS,这些新文件需要缩小。图像需要删除其元数据。所有生成的文件都需要移动到具有自己结构的新目录中。

这一切似乎都不是特别复杂,但我看到有几个人为此使用makefile

我是不是太不愿意学习如何使用 makefile?与简单的 bash 脚本相比,它们有哪些优势?

make makefile

7
推荐指数
1
解决办法
4695
查看次数

Jenkins Docker 镜像没有 make 或 sudo

我正在尝试使用来自 Docker 中心的 Jenkins 映像在 AWS 上设置 CI。我已经在这个过程中花费了几个小时(为 Node 项目进行配置),现在我意识到我的一些 npm 依赖项需要make构建。Docker 映像没有make,也没有sudo,所以看起来我不能apt-get install make。是否有另一种方法make无需使用授予 root 访问权限的 Dockerfile 重新创建映像?

sudo make jenkins docker

7
推荐指数
1
解决办法
1万
查看次数

制作和管道后保持较少的颜色

在使用“make 2>&1”编译一些程序后,我想在less命令中保留颜色。“grep”和“ls”命令有类似的主题,但解决方案不适用于此命令。

例如,

make 2>&1 | less -R 
Run Code Online (Sandbox Code Playgroud)

不起作用。

谢谢你的帮助。

linux bash zsh less make

7
推荐指数
2
解决办法
3699
查看次数

打开新终端窗口的便携式方法?

所以,我正在开发一个自定义的 makefile 脚本(对于 TinyOS,如果有人关心的话),它会构建一个文件,然后在模拟器中运行它。

问题是模拟器从标准输入中获取它的输入,如果我从我和我的团队使用的 eclipse 插件运行 makefile,我实际上无法向其中输入任何命令。

我已经通过使用该行解决了这个问题

gnome-terminal --title="MSPSim Terminal" -x mspsim build/telosb/main.elf
Run Code Online (Sandbox Code Playgroud)

现在,这显然只有在用户 a) 在 GNOME 系统上,并且 b) 有 gnome-terminal 时才有效。

由于我个人认为这个快捷方式使补丁非常有用,我想将它作为补丁提交给 TinyOS - 但显然我需要先使其可移植。

任何人都知道一种在 linux、mac OSX 和 cygwin 的任何变体上启动新终端窗口的方法,最好以该文件适用于所有三个的方式,而不管您使用的是什么?

terminal bash shell-script make gnome-terminal

6
推荐指数
1
解决办法
800
查看次数

“make install”把文件放在哪里?

在我解压包含我要安装的软件的 tar 文件后,我运行了

./configure
Run Code Online (Sandbox Code Playgroud)

然后:

make
make install
Run Code Online (Sandbox Code Playgroud)

但是这个软件安装在哪里呢?我如何通过终端找到它的路径?

Linux 是否将所有程序都安装在特定目录中?或者它只是将它们安装到与make发出命令的 tar 文件相同的目录中?

linux make installation

6
推荐指数
2
解决办法
1万
查看次数

Ubuntu 上的 noip 安装

我正在尝试在 Ubuntu 12.04.4 上安装noip ,但我不知道有关构建/编译软件的第一件事。

README 文件准确地描述了这些内容:

如何为您的系统构建可执行文件

命令 make 将构建将在您的系统上运行的 noip2 客户端的二进制文件。

如果您没有安装“make”,并且您有一台带有 libc6 的 i686 Linux 机器,则 i686 系统的二进制文件位于名为 noip2-Linux 的二进制文件目录中。将该二进制文件复制到构建目录“cp binaries/noip2-Linux noip2”

命令 make install(必须以 root 身份运行)会将各个部分安装到适当的位置。这将提出问题并构建配置数据文件。
如果您无法成为 root 或无法在 /usr/local/* 中写入,请参阅下文。

显然他们希望我使用 make,但是当我尝试[在 root 下操作]时:

anon@anon:~$ make -f /home/noip-2.1.9-1/makefile
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

make: /home/noip-2.1.9-1/makefile: No such file or directory
make: *** No rule to make target `/home/noip-2.1.9-1/makefile'.  Stop.
anon@anon:~$ 
Run Code Online (Sandbox Code Playgroud)

所以!我做错了什么,有更简单的方法吗?

如果您觉得答案有帮助,请给答案点赞

make ubuntu-12.04

6
推荐指数
1
解决办法
1万
查看次数

我将如何使 Pendrive 写保护?

我只是想让我的pendrive 写保护只是为了确保当我将它插入公共 PC 时,例如在网吧中以读取文件,它不会受到病毒影响。我怎样才能做到这一点?

write-protect make usb-flash-drive

6
推荐指数
2
解决办法
5万
查看次数

你如何在没有编译器的情况下安装 gnu MAKE

我在这方面有点新。我有一个虚拟机 centos5.1,它不附带 make 或任何编译器...基本上是精简的。它不附带任何安装包,如 yum、rpm 或 apt。为了安装'make',你必须有一个像gcc这样的有效编译器。然而,为了编译 GCC,你需要有 'make'。我该如何安装这些开发工具?

centos gnu make

5
推荐指数
1
解决办法
3641
查看次数

在 MS Word 中自动保存 PDF

这个问题的灵感来自于我对 LaTeX 的使用,您通常在其中共享生成的 PDF,而不是源文件。我希望我的.docx文档是源文件,而 PDF 是要共享的文件。因此,我希望每次保存.docx文件时都让 MS Word 使用相同的文档名称制作 PDF 。有没有办法获得这种行为?我使用的是 mac,但如果能够在基于 Windows 的计算机上执行此操作,那就太好了。

示例:如果我创建了一个名为 的新文档mydocument.docx,则 MS Word 会在名为mydocument.pdf. 每次我更改和保存 .pdf 时,都会保存和覆盖 PDF mydocument.docx。有点类似make的动作?

pdf microsoft-office make microsoft-word

5
推荐指数
1
解决办法
3757
查看次数

如果输出是通过管道传输的,为什么 make 会忽略转义序列

在 Makefile 中,我想打印一个以十六进制数字表示的字节并将其传递给另一个程序的 STDIN。由于某种原因,它不起作用:

without-pipe:
    @printf '\x66\x6f\x6f'

with-bash-and-pipe:
    @/bin/bash -c "printf '\x66\x6f\x6f' | cat"

with-pipe:
    @printf '\x66\x6f\x6f' | cat
Run Code Online (Sandbox Code Playgroud)

运行该文件会产生:

$ make without-pipe 
foo

$ make with-bash-and-pipe 
foo

$ make with-pipe 
\x66\x6f\x6f
Run Code Online (Sandbox Code Playgroud)

我缺少什么功能make以及使最后一个目标产生相同输出的正确方法是什么。这with-bash-and-pipe是一种解决方法。

pipe make escape-characters binary-files

5
推荐指数
1
解决办法
391
查看次数