Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX上C的生成文件_C_Unix_Makefile - Fatal编程技术网

UNIX上C的生成文件

UNIX上C的生成文件,c,unix,makefile,C,Unix,Makefile,你好,我开始学习C和Unix编程。然而,我对makefile真的很困惑。我创建了一个简单的c程序,用printf(aloha.c)显示文本行。我应该如何创建一个makefile?它是同一目录中的一个单独的.c文件还是文本文件 /*Will output aloha!*/ #include <stdio.h> int main(void) { printf("Aloha!\n"); printf("Hello World!\n"); return 0; } /*将输

你好,我开始学习C和Unix编程。然而,我对makefile真的很困惑。我创建了一个简单的c程序,用printf(aloha.c)显示文本行。我应该如何创建一个makefile?它是同一目录中的一个单独的.c文件还是文本文件

/*Will output aloha!*/
#include <stdio.h>
int main(void)
{
   printf("Aloha!\n");
   printf("Hello World!\n");
   return 0;
}
/*将输出aloha*/
#包括
内部主(空)
{
printf(“Aloha!\n”);
printf(“你好,世界!\n”);
返回0;
}

最简单的生成文件如下:

aloha: aloha.c Makefile
    gcc -o aloha aloha.c
(记住,如果第二行的开头是制表符)。它通常在与源代码相同的目录中命名为
Makefile
,因此您只需在命令行中输入
make

从那以后,它会变得异常复杂,这取决于您需要如何将不同的对象绑定在一起


您会注意到,我已将
Makefile
本身包含在依赖项列表中-因此,对Makefile的任何更改都会重做所有操作,因为对于必须重新编译、重新链接的内容,所有赌注都已取消。

最简单的Makefile应该是这样的:

aloha: aloha.c Makefile
    gcc -o aloha aloha.c
(记住,如果第二行的开头是制表符)。它通常在与源代码相同的目录中命名为
Makefile
,因此您只需在命令行中输入
make

从那以后,它会变得异常复杂,这取决于您需要如何将不同的对象绑定在一起


您会注意到,我已经将
Makefile
本身包含在依赖项列表中-因此,对Makefile的任何更改都会重做所有事情,因为对于必须重新编译、重新链接的内容等,所有赌注都已取消。

正如paxdiablo先前回答的那样,这是您可以为C文件编写的最简单的Makefile。然而,Makefiles有更广泛的用途。它们使您能够以非常有组织的方式自动管理和构建项目。生成文件由一个或多个规则组成,如下所示:

target: dependencies
[tab] system command
但是,也可以添加一些变量来简化makefile。变量有两种类型:递归扩展变量和简单扩展变量。实际上,变量可以表示目录、文件名列表、要传递给编译器的选项、要运行的程序

注意:makefile中的变量区分大小写,这意味着CC和CC(例如)被认为是不同的

另一方面,为了创建makefile,创建一个文本文件,编写内容并将文件名更改为makefile


注意:当使用“make”时,它直接执行名为“Makefile”的文件,如果目录中有另一个要执行的Makefile,则应在make命令前面添加要执行的文件名

正如paxdiablo前面回答的那样,这是您可以为C文件编写的最简单的Makefile。然而,Makefiles有更广泛的用途。它们使您能够以非常有组织的方式自动管理和构建项目。生成文件由一个或多个规则组成,如下所示:

target: dependencies
[tab] system command
但是,也可以添加一些变量来简化makefile。变量有两种类型:递归扩展变量和简单扩展变量。实际上,变量可以表示目录、文件名列表、要传递给编译器的选项、要运行的程序

注意:makefile中的变量区分大小写,这意味着CC和CC(例如)被认为是不同的

另一方面,为了创建makefile,创建一个文本文件,编写内容并将文件名更改为makefile


注意:当使用“make”时,它直接执行名为“Makefile”的文件,如果目录中有另一个要执行的Makefile,则应在make命令前面添加要执行的文件名

请编辑您的问题以包含您的代码。:)在我的帖子中添加了代码:请编辑您的问题以包含代码。:)在我的帖子中添加了代码:o