免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: huxk

[C] aix strcpy core掉 [复制链接]

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
发表于 2008-08-12 16:32 |显示全部楼层

回复 #9 huxk 的帖子

这可能是编译器的bug。
建议编译时带上参数 -Wall
这样就可以显示编译时的所有警告信息。

论坛徽章:
0
发表于 2008-08-12 16:38 |显示全部楼层

回复 #10 cheng_lai_shun 的帖子

编译是的确可以过去的。我只是写了一个简单的测试程序,然后就cc 的确是可以的,errors和warnnings都没有的。不知道用make可不可以。

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
发表于 2008-08-12 16:45 |显示全部楼层

回复 #12 huxk 的帖子

编译时带上参数-Wall,例如:
cc -Wall  ...

论坛徽章:
0
发表于 2008-08-12 16:49 |显示全部楼层

回复 #13 happy_fish100 的帖子

好,我试试,带上参数能否报警。。。。

论坛徽章:
0
发表于 2008-08-12 16:58 |显示全部楼层
加上-Wall好像也不起作用,纳闷

论坛徽章:
0
发表于 2008-08-12 23:58 |显示全部楼层
aix上你用的xlc吧?
xlc -qinfo=all
。。。。不过这个检查太严格了,估计你会被很多警告信息包围了。

从另一个侧面,反应了你用的是-q64模式来编译的。如果你用-q32,即便没有<string.h>
结果一样没有问题的。(或者你定义了OBJECT_MODE=64)
只是从严格上来说,你应该总是使用正确的函数原型。这个是最起码的要求。
没事就把所有的警告开关打开吧。很有好处的。

论坛徽章:
0
发表于 2008-08-13 00:15 |显示全部楼层
原帖由 huxk 于 2008-8-12 16:38 发表
编译是的确可以过去的。我只是写了一个简单的测试程序,然后就cc 的确是可以的,errors和warnnings都没有的。不知道用make可不可以。

嗯。。。
估计你的CCOPTS包含了-w选项或者你的/etc/vac.cfg有此类设置吧

论坛徽章:
0
发表于 2008-08-13 09:14 |显示全部楼层
原帖由 ivhb 于 2008-8-13 00:15 发表

嗯。。。
估计你的CCOPTS包含了-w选项或者你的/etc/vac.cfg有此类设置吧


vac.cfg 中的xlc和cc的相关设置如下

* ANSI C compiler, UNIX header files
xlc:    use        = DEFLT
        crt        = /lib/crt0.o
        mcrt       = /lib/mcrt0.o
        gcrt       = /lib/gcrt0.o
        libraries  = -L/usr/lpp/xlopt,-lxlopt,-lc
        proflibs   = -L/lib/profiled,-L/usr/lib/profiled
        options    = -qansialias

* C compiler, extended mode
cc:     use        = DEFLT
        crt        = /lib/crt0.o
        mcrt       = /lib/mcrt0.o
        gcrt       = /lib/gcrt0.o
        libraries  = -L/usr/lpp/xlopt,-lxlopt,-lc
        proflibs   = -L/lib/profiled,-L/usr/lib/profiled
        options    = -qlanglvl=extended,-qnoro,-qnoroconst

论坛徽章:
0
发表于 2008-08-13 09:20 |显示全部楼层
原帖由 ivhb 于 2008-8-12 23:58 发表
aix上你用的xlc吧?
xlc -qinfo=all
。。。。不过这个检查太严格了,估计你会被很多警告信息包围了。

从另一个侧面,反应了你用的是-q64模式来编译的。如果你用-q32,即便没有
结果一样没有问题的。(或者 ...


我的确用的是 -q64,也定义了OBJECT_MODE=64.

不过现在我想起来一点,就是我写一个函数模块并单独编译成一个.o文件的时候,并不需要一个关于此模块函数的声明的头文件

不过编译器会给一个警告信息的。

同样,那这里既然没有包含<string.h>,而程序又能编译运行,那么就说明编译器就包含了包含strcpy函数的模块,

但没有头文件,但是警告信息却没有。

论坛徽章:
0
发表于 2010-06-29 17:02 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP