windows下使用makefile编译C语言.doc

原创 2006年10月14日 14:29:00

1.       准备工作:

程序:

MinGW-3.1.0-1.exe      windows下的gcc,编译c语言的工具

下载地址: http://umn.dl.sourceforge.net/sourceforge/mingw/MinGW-3.1.0-1.exe

 make                           按照makefile规则编译程序的工具

位置 :window/system32下,如果没有可以在 http://www.mingw.org/download.shtml找到

配置环境: 

环境变量配置 :

控制面板> >高级 >环境变量 >系统变量 >添加MinGW 安装目录下的bin目录到path中去,或者命令行下运行:set PATH=  MinGW 安装目录下的bin目录

C:/WINDOWS/system32用上边方法添加到path中以找到make.exe

 

创建四个文件:

//---------------------------Main.c : ---------------------------//

#include "stdio.h"

main()

{

    func();

    printf("this is main/n");

    getch();

}

 

//---------------------------func.c : ---------------------------//

#include "stdio.h"

func()

{

    printf("this is func/n");

    getch();

}

 

一个空文件,文件名为makefile或者Makefile,这个文件名是必须的因为make默认查找该文件

 

创建compile.bat文件

内容为:

make

cmd

 

 

2.       编写makefile

示例:

test:main.o func.o      

       gcc -o test main.o func.o      

func.o:func.c   

       gcc -c func.c      

main.o:main.c      

       gcc -c main.c      

 

1行:生成test可执行文件,它的依赖于main.o func.o,也就是说生成test你得先生成它们,

2行:gcc前边必须是tab也就是7个空格,表示编译生成test

后边是依赖项的生成规则

 

然后运行compile.bat就可以生成test.exe文件了,同时会附加生成func.omain,o两个中间代码的文件,类似于VC中的obj文件

 

3.       makefile的编写规则

可以参看:http://www.stlchina.org/twiki/bin/view.pl/ScriptProgram/LearnMakefile

4.       gcc的参数

VC,TC等编译器不同,GCC其实是可以很方便的在提示符下编译程序的。GCC在提示符下编译程序,并没有如同VC那样的冗长而晦涩的编译参数。相反,却有着比VC更灵活且简短的参数。

不得不承认,不懂GCC编译参数的人,确实会损失一些GCC的强大功能。所以,我下面简单介绍一下GCC的一些基本编译参数。这里,我以C编译器为例。

 

编译二进制代码

$gcc -c yours.c -o yours.o

使用这段指令,GCC将会把yours.c编译成yours.o的二进制代码。其中,yours.o就类似于VC,TC中的.obj文档。

 

编译最简单的小程序。

$gcc -o yours yours.c

通过这条指令,GCC将会把yours.c源代码编译成名为yours的可执行程序。当然,您也可以将yours.c改成我们刚才介绍的yours.o文件。这样,gcc将使用编译刚才编译好的二进制文档来链接程序。这里,格式的特点是,-o 后面是一串文件列表,第一个参数是所编译程序的文件名,从第二个开始,就是您编译和连接该可执行程序所需要的二进制文档或者源代码。

 

编译时将自己的头文件目录设为默认头文件目录

$gcc -I”Your_Include_Files_Document_Path” -c yours.c -o yours.o

这条指令中的-I参数将会把Your_Include_Files_Document_Path添加到你默认的头文件目录中。这样您将可以使用 #include <your_include.h>来导入头文件。

 

编译时使用自己的静态库存放目录

$gcc -L”Your_Lib_Files_Document_Path” -o yours yours.o

这条指令将会让GCC在连接时除了在默认Lib存放目录中搜索指定的静态库以外,还会在Your_Lib_Files_Document_Path中搜索。

 

编译时使用静态连接库

$gcc -lyour_lib -o yours yours.o

这条指令将会让GCC在连接时把 libyour_lib.a中您所用到的函数连接到可执行程序中。此处注意,GCC所使用的静态连接库是lib*.a格式的。在连接时,只且仅需要提供*的内容就可以了。

 

编译时使用优化

$gcc -O2 -c yours.c -o yours.o

使用优化方式编译程序,其中除了-O2以外,还有-O3 -O1等等。他们代表不同的优化等级。最常用的,是-O2优化。当然,还有针对特殊CPU的优化,这里就不介绍了。

 

编译时显示所有错误和警告信息

$gcc -Wall -c yours.c -o yours.o

GCC在默认情况下,将对一些如变量申请未使用这样的问题或者申请了没有给予初始值的问题忽略。但是,如果使用了-Wall参数,编辑器将列出所有的警告信息。这样,您就可以知道您的代码中有多少可能会在其他操作系统下出错的地方了。(用这个指令看看你的代码有多少地方写的不怎么合适。)

 

编译连接时,加入调试代码

$gcc -g -o yours yours.c

正如同VCdebug编译模式一样,GCC也有debug模式。添加了-g 参数编译的可执行程序比普通程序略为大一些,其中添加了一些调试代码。这些代码将被gdb所支持。

 

连接时缩小代码体积

$gcc -s -o yours yours.o

这个参数,似乎我没有在Unix环境下看到过。也不知道具体什么作用。因为有人说Visual-MinGW生成的代码小,于是研究了一下她的编译参数,发现release模式的编译参数就加了这一项。貌似编译后的代码的确缩小了很多。

 

获得帮助

$gcc --help

这条指令从意思上就能看出,获得gcc的帮助信息。如果您有什么特殊需要,也许这个指令能帮上点小忙。

 

 

 

Windows安装GNU编译器使用makefile

Windows安装GNU编译器使用makefile 一、下载安装MinGW MinGW下载网页:http://sourceforge.net/projects/mingw/files/latest...
  • pdcxs007
  • pdcxs007
  • 2013-02-16 12:52:39
  • 48926

mingw makefile在windows下的书写

mingw makefile c++ windows书写
  • sunears
  • sunears
  • 2010-09-30 11:47:00
  • 6174

windows 下使用makefile(二)---- 编译

1.Dos下运行VC++自带的Nmake,设置路径 ========================================== ●C/C++ 编译器需要的环境变数设定古早以来,PC 上的 ...
  • xiexievv
  • xiexievv
  • 2013-01-06 23:41:49
  • 8837

windows下使用cmake+mingw配置makefile(一)

1.下载Cmake,并配置环境变量 下载链接:https://cmake.org/download/ 环境变量略 2. 生成Makefile 1)新建 hello 文件夹,在hello中创建hello...
  • xiaopangzi313
  • xiaopangzi313
  • 2016-11-10 14:57:13
  • 6844

Windows下的命令编译与Makefile

一般来说在程序编译的中,无论是C、C++,首先要把源文件编译成中间代码文件,在Windows下是 .obj 文件(UNIX下是 .o 文件),即 Object File,这个动作叫做编译(compil...
  • perry_xiao
  • perry_xiao
  • 2011-12-01 20:48:06
  • 5138

window下通过makefile 文件编译C/C++源文件

scintilla下载下来的例子:所带4文件:resource.hDMApp.cxxDMApp.rcmakefile_vc其中makefile_vc的文件内容:////////////////////...
  • adriano119
  • adriano119
  • 2010-08-24 22:04:00
  • 2901

windows 下使用make命令,编译代码

Windows安装GNU WinGW编译器使用makefile Windows安装GNU编译器使用makefile 一、下载安装MinGW MinGW下载网页:http://...
  • Nicholas_Liu2017
  • Nicholas_Liu2017
  • 2017-10-23 21:10:08
  • 8511

Windows平台下Makefile学习笔记(一)

作者:朱金灿来源:http://blog.csdn.net/clever101         决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用...
  • clever101
  • clever101
  • 2012-11-05 09:02:20
  • 45644

使用makefile编译C语言文件遇到的问题

第二个问题是关于makefie的。众所周知,使用makefile可以对多个源文件进行编译,非常的方便简捷。但是在学习的过程中我遇到了一些小问题。使用makefile和在主函数所在的文件直接incldu...
  • daijingxin
  • daijingxin
  • 2016-01-06 19:55:53
  • 1050

make,makefile和程序的编译链接过程

一,Linux下程序运行过程 1,在一个目录下新建三个文件:main.c hello.c hello.h分别编写他们如下图: 2,想要让这个程序执行起来,就必须对上面的三个文件分别进行编译...
  • Stand__out
  • Stand__out
  • 2016-06-02 12:00:18
  • 5339
收藏助手
不良信息举报
您举报文章:windows下使用makefile编译C语言.doc
举报原因:
原因补充:

(最多只允许输入30个字)