3

如果我想使用 makefile 制作命令行工具,请说这个 C 程序:

# include<stdio.h>

int main()
{
    printf("Hello World!");
    return 0;
}

我以前没有任何使用 makefile 或 linux shell 命令的经验。刚开始。谁能告诉我该怎么做?

4

4 回答 4

6

对于这样的单个源文件,您真的不需要生成文件 - 只需像这样编译它:

$ gcc -Wall foo.c -o foo

如果你真的想要一个makefile,那么你可以做这样的事情:

#
# makefile
#

foo: foo.c
    gcc -Wall foo.c -o foo

然后从命令行你可以说:

$ make foo

甚至只是

$ make
于 2011-09-08T15:52:30.860 回答
2

我手边没有 Unix 盒子,但是 make(1) 的 ISTR 有一些默认规则,应该允许你简单地输入make hello,它会找到 hello.c 并生成一个名为“hello”的二进制文件。当然,对于更复杂的事情,您需要阅读 make(1) 或其后代,man make这是一个很好的起点。

于 2011-09-08T16:01:56.477 回答
1

生成文件:

hello: hello.c
    gcc -Wall -o hello hello.c


$ make hello
$ ./hello

您可能会从中受益。

此外,您的程序缺少换行符。您可能想打印"Hello World!\n".

于 2011-09-08T15:53:57.553 回答
1
$cat makefile
main:main.c
    gcc -o main main.c

clean:
    rm main
于 2011-09-08T16:06:47.603 回答