zoukankan      html  css  js  c++  java
  • 如何将多个C文件链接在一起----Makefile编写及make指令

    需使用GCC编译器,关于MinGW的安装指南:https://people.eng.unimelb.edu.au/ammoffat/teaching/20005/Install-MinGW.pdf


    单个.c文件且没有使用自定义头文件的编译,在命令行:

           • gcc -o programName program.c

                  -o后紧跟生成程序名

                  其余常用选项:

                         -Wall      显示全部警告信息

                         -g        产生带调试信息的编译后目标代码,供调试器(如gdb使用)

                         -c    仅编译

                        

           • make program                   默认和.c同名,使用.c的名字

          

    如果在.c文件中使用了自定义头文件,要将多个.c和.h文件组合生成程序则要使用Makefile,然后在命令行使用make命令。

    Makefile编写:

           1. 创建名为Makefile的文件(没有后缀名),放在和程序一个文件夹。

           2. 对Makefile文件进行编写。

                  例子:P3.1.c中用到了bst.h

                         bst.c中用到了bst.h, llqueue.h

                         llqueue.h中用到了llqueue.h

                 

                  P3.1:llqueue.o P3.1.o bst.o

                         gcc -Wall -o P3.1 P3.1.o bst.o llqueue.o -g

                 

                  P3.1.o:bst.h P3.1.c

                         gcc -Wall -c P3.1.c -g

                 

                  bst.o:bst.c bst.h llqueue.h

                         gcc -Wall -c bst.c -g

                 

                  llqueue.o:llqueue.c llqueue.h

                         gcc -Wall -c llqueue.c -g

                  注意gcc前是Tab间隔,不是空格间隔。

                  每个 : 后的顺序可变。

                 

    如果上传到学校unix上显示permission denied

    使用命令chmod 777 文件名

  • 相关阅读:
    泛型的内部原理:类型擦除以及类型擦除带来的问题
    Redis的那些最常见面试问题
    线程池全面解析
    对线程调度中Thread.sleep(0)的深入理解
    集群环境下Redis分布式锁
    3.8
    3.7
    3.6任务
    3.5任务
    3.4
  • 原文地址:https://www.cnblogs.com/Will-zyq/p/10163670.html
Copyright © 2011-2022 走看看