究竟什么是makefile,以及如何创建makefile?


8

我知道这是一个愚蠢的问题,但是由于我一直努力学习自己的linux,因此需要您的帮助。

我在互联网上找到了此任务,并且正在尝试解决它,但我不完全了解如何在Linux中使用makefile以及如何创建它们。

假设我的打印工作目录是 /home/george/Documents

我想创建一个执行以下操作的makefile:

  1. 显示如下消息“您好,今天是星期日”。太阳从星期日来。因此,我必须date在此make文件中使用命令来仅显示前三个字母。
  2. /etc/hosts/tmp使用中压缩gzip(可能这里应该像

    gzip -c SOURCE DESTINATION # ?? 
    

干杯


在软件开发活动中,可以使用Makefile从源文件中选择性地构建过时的目标文件。它与您将要执行的操作无关。
enzotib

Answers:


8

要回答您的问题,我无法给您一个单行/段落的答案,因为它涉及到所有问题。阅读第一个链接,它同时包含示例所需的一切。

好的教程可以解释关于make的所有内容


3
第一个链接应该是:mrbook.org/blog/tutorials/make
Shahryar Saljoughi

mrbook.org/blog/tutorials/make tutorial使用了过时的c ++代码,并且不再进行编译。请参阅此问题以了解并解决。
David

链接已死。
ComputerScientist

2

Makefile用作C程序编译的“映射”。它们与make实用程序一起使用,描述了一旦转换为可执行文件后如何正确编译/链接程序才能正常工作。对于全局UNIX / shell任务,您正在寻找shell脚本,而不是makefiles :)

http://en.wikipedia.org/wiki/Make_(software)#Makefiles有关生成文件的更多信息,并http://en.wikipedia.org/wiki/Shell_script发现shell脚本。

您尝试执行的基本Shell脚本可能是:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

在文件存储这一点,并使用你的shell提示符下执行它(bash myscript.shsh myscript.sh,...)。您还可以使用以下命令使脚本可执行:

chmod +x myscript.sh

然后使用以下默认解释器执行它:

./myscript.sh

1
我正在尝试创建一个makefile文件,而不是shell脚本。
阿德里安·乔治

然后,您必须开发一个执行此操作的C程序,并根据需要使用Makefile对其进行编译。Makefile 执行Linux任务,它们指导C程序的编译,这是完全不同的事情。
约翰·史密斯

1
@JohnWHSmith 编译C程序没有什么特别的。Makefile 用于执行各种任务。(话虽如此,许多任务都不适合使用makefile。)
Eliah Kagan 2013年

0

为什么不创建一个Shell脚本,然后创建一个指向您创建的Shell脚本的符号链接?将符号链接放在PATH中的目录中,以便无论您位于哪个目录中,都可以“运行”符号链接。

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.