linux怎么编译makefile文件,linux下Makefile文件的编写

linux下Makefile文件的编写

开始使用Linux编程时,一个很讨厌的问题就是如何写Makefile文件,由于在Linux下

不像在Windows下那么熟悉,有那么多好的软件(也许是对Linux孤陋寡闻了)。虽然

象Kylix和Anjuta这样的集成编译环境,但是Kylix太大太慢,用它编写console程序

不亚于高射炮打蚊子——大材小用,而Anjuta又太不稳定,况且字体有那么难看。不

说了,还是言归正传,看看Makefile该如何编写。

1. 简单的GCC语法:

如果你只有一个文件(或者只有几个文件),那么就可以不写Makefile文件(当然有

Makefile更加方便),用gcc直接编译就行了。在这里我们只介绍几个我经常用的几

个参数,第一是 “-o”,它后面的参数表示要输出的目标文件,再一个是 “-c”,

表示仅编译(Compile),不连接(Make),如果没有”-c”参数,那么就表示连接

,如下面的几个命令:

gcc –c test.c,表示只编译test.c文件,成功时输出目标文件test.o

gcc –c test.c –o test.o ,与上一条命令完全相同

gcc –o test test.o,将test.o连接成可执行的二进制文件test

gcc –o test test.c,将test.c编译并连接成可执行的二进制文件test

gcc test.c –o test,与上一条命令相同

gcc –c test1.c,只编译test1.c,成功时输出目标文件test1.o

gcc –c test2.c,只编译test2.c,成功时输出目标文件test2.o

gcc –o test test1.o test2.o,将test1.o和test2.o连接为可执行的二进制文件test

gcc –c test test1.c test2.c,将test1.o和test2.o编译并连接为可执行的二进制

文件test

注:如果你想编译cpp文件,那么请用g++,否则会有类似如下莫名其妙的错误:

cc3r3i2U.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0’

......

还有一个参数是”-l”参数,与之紧紧相连的是表示连接时所要的链接库,比如多线

程,如果你使用了pthread_create函数,那么你就应该在编译语句的最后加上”-lpthread

”,”-l”表示连接,”pthread”表示要

阅读(2483) | 评论(1) | 转发(0) |

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值