如何编写Makefile来编译一个简单的C程序

 mobiledu2502898253 发布于 2023-01-29 15:11

编译以下程序

#include 
int main(void)
{
   printf ("Hello from your first program!\n");
   return 0;
}

a)-by使用Makefile类型的文件

b) - 可执行文件将命名为Hello

"请帮忙做一个练习.我知道如何在CodeBlocks中做到这一点,但我不知道Makefile是什么以及如何在Linux中编写它.我使用命令"gcc filename.c"编译它,随后"./ a.out"但我仍然不明白Makefile是什么.它是一种shell脚本,一条指令吗?这个任务的Makefile如何看起来如此?提前感谢:)"

2 个回答
  • 这是你的hello程序的简单make文件.

    CC      = gcc
    CFLAGS  = -g
    RM      = rm -f
    
    
    default: all
    
    all: Hello
    
    Hello: Hello.c
        $(CC) $(CFLAGS) -o Hello Hello.c
    
    clean veryclean:
        $(RM) Hello
    

    假设你有两个makefiles在一个目录中命名makefile.m1,makefile.m2如果你想构建两个make文件,那么请使用以下命令

    make -f makefile.m1
    make -f makefile.m2
    

    或使用Makefile包含以下内容的单曲

    m1:
      make -f makefile.m1
    
    m2:
      make -f makefile.m2
    

    并使用make m1make m2

    现在让我们清楚你对make文件名称的疑问一定不要求 Makefile

    您可以根据需要为makefile命名.假设我想给出名字myfirstmakefile.mk.要在以后使用它,你需要告诉make你想要什么makefile.使用-f选项:

    make -f myfirstmakefile.mk
    

    而且再次宣告也不.mk是你可以使用你想要的任何东西,但永远不会忘记使用-f选项.

    所以这对你有意义.

    2023-01-29 15:13 回答
  • 一个makefile文件是为配方make效用如何创建一些文件(称为目标使用一组由shell中运行命令的一些其他文件(称为依赖)).makefile通常如下所示:

    target: dependency [...]
            command1
            command2
    

    尝试运行man make详细信息.

    现在为您的任务,实际上不需要Makefile,因为make内置规则知道如何编译一个简单的程序.您需要做的就是将C源放在一个以可执行文件名(Hello)和.c扩展名命名的文件中,即Hello.c.

    那么简单

    $ make Hello
    cc     Hello.c   -o Hello
    

    做一切.如果你想使用gcc而不是cc,你可以运行

    $ rm Hello
    $ make CC=gcc Hello
    gcc     Hello.c   -o Hello
    

    如果你告诉你的导师/老师/教授你需要一个空的makefile,因为你知道内置的规则是正确的,你会得到一些额外的功劳,也许你的导师已经学到了新东西:-)如果你要求提供参考,您可以引用制作手册的相关部分,或者像专业人士一样,从制造实用程序的POSIX标准引用默认规则部分.

    2023-01-29 15:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有