免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1688 | 回复: 9
打印 上一主题 下一主题

[C] 关于GCC编译的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-13 11:29 |只看该作者 |倒序浏览
一共是三个.c文件 main.c, a.c, b.c,三个.h文件 main.h, a.h, b.h
在mian.c里面引用了这三个头文件
编译的时候用下面的这个makefile
  1. .PHONY:all
  2. all: main

  3. main: main.o a.o b.o
  4.         gcc -o main main.o a.o b.o

  5. a.o: a.c
  6.         gcc -c $< -Wall
  7. b.o: b.c
  8.         gcc -c $< -Wall
  9. main.o: main.c
  10.         gcc -c $< -Wall

  11. clean:
  12.         @rm ./*.o
复制代码

和直接用

  1. main: main.c a.c b.c
  2.         gcc -o main main.c a.c b.c -Wall
复制代码

生成的可执行文件的大小不一样
请问这两个方法有问题吗?

论坛徽章:
0
2 [报告]
发表于 2009-03-13 11:45 |只看该作者
sorry,有误导嫌疑,删除之 :)

[ 本帖最后由 zhuhefang2006 于 2009-3-13 11:55 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-03-13 11:49 |只看该作者

回复 #2 zhuhefang2006 的帖子

.h不是自动依赖,可以省略吗?

论坛徽章:
0
4 [报告]
发表于 2009-03-13 12:11 |只看该作者
是不是因为-Wall的影响?

第二个makefile未指定编译a.c b.c的GCC选项 所以默认没有(或不是) -Wall呢?

LZ把里面的 -Wall都去掉再看看

我未测试哈 偷懒了

论坛徽章:
0
5 [报告]
发表于 2009-03-13 13:00 |只看该作者

回复 #4 lenky0401 的帖子

刚才试了一下,去掉 -Wall 也一样,大小还是不一样...

论坛徽章:
0
6 [报告]
发表于 2009-03-13 13:07 |只看该作者
我想会不会和.o文件有关
第一种方法是用.o组合的
第二种方法是直接生成的
你用nm各自可执行文件看看

论坛徽章:
0
7 [报告]
发表于 2009-03-13 13:23 |只看该作者

回复 #6 gawk 的帖子

我看了一下,两种方式nm的结果中,value段的值有很多不一样的,其他的类型,名字都是一样的

论坛徽章:
0
8 [报告]
发表于 2009-03-13 19:48 |只看该作者
我只能确认-Wall选项与这个没关系。
其他原因还搞不清。

能否把代码发出来下,让我们试试?

论坛徽章:
0
9 [报告]
发表于 2009-03-13 20:10 |只看该作者
随便写了两个文件测试了一下, 两个可执行文件大小一样。
gcc version 4.1.0 (SUSE Linux)

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2009-03-13 20:37 |只看该作者
原帖由 草肃威 于 2009-3-13 13:00 发表
刚才试了一下,去掉 -Wall 也一样,大小还是不一样...

大小相差多少?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP