我不清楚makefile中包含的内容,以及头文件中包含的内容。
据我所知,makefile的格式是:
target: dependencies
        instructions但这对我不起作用。这就是我所做的:
library: login.o linked.o cipher.o
    gcc -o library login.o linked.o cipher.o
login.o: login.c linked.h
    gcc -c login.c
linked.o: linked.c cipher.h
    gcc -c linked.c
cipher.o: cipher.c
    gcc -c cipher.c当我在命令行中输入"make makefile“时,编译器会说"make:对于‘makefile’不做任何事情”。我猜我把格式搞错了。另外,库部分是用来做什么的?我只是从某个地方抄袭过来的。是不是每个makefile都有一个?
另外,makefile (makefile.txt,makefile.c)有没有扩展名?
那么makefile必须被命名为makefile吗?我可以将它命名为makefile69、makefile69、lykeim2freespirited4skool或iwanaBahippie吗?
至于头文件,我找不到任何明确的例子来说明它们到底有什么内容。是否包含希望其他文件能够访问的变量?还是函数原型?
我对C语言真的很陌生,有人能像我5岁那样给我解释一下吗?
发布于 2012-03-12 07:24:13
当您运行make时,它将查找一个名为Makefile的文件;您不必指定要使用的makefile。如果没有任何参数,make将(通常)在文件中构建第一个目标。Makefile不需要扩展名,可以命名为其他名称(但您必须告诉make去哪里查找)。
头文件用于函数原型、类型和(全局)变量,您需要从放入.c文件中的代码中访问它们(加上一些其他东西,比如可以派上用场的预处理器#define)。
发布于 2012-03-12 08:02:14
构建C语言软件有两个阶段.....编译和链接。
编译会将.C文件转换为目标文件。
链接获取所有这些目标文件,并将它们合并到一个库或可执行文件中。
头文件在编译过程中使用...它有关于你在链接时应该找到的东西的信息。即..。应该有一个名为X的函数,应该有一个名为Y的变量,等等……或者它定义了一些东西,所以它们在几个C文件中是通用的。例如MAX_WIDGETS。也就是说,它是一种让一个.c文件使用在另一个.c文件中实现的东西,或者定义.c文件中通用的东西的一种方式。
Makefile是关于如何获取.h .c并通过编译和链接运行它们,以及您想要对这些文件进行的任何其他转换。
发布于 2012-03-12 08:30:36
makefile没有问题,但没有名为"makefile“的目标。使用文件选项选择-f:make -f makefile。但是你不需要它,因为你的文件有一个标准的名字(Makefile,makefile,...)。
https://stackoverflow.com/questions/9659912
复制相似问题