写好的程序用不同版本的gcc编译,结果竟然不一样
我用gcc 2可以编译成功的代码,用gcc 3.3就会出现“undefine 妇function。。。”的问题,怎么回事啊,是不是linux就是这种样子,
那在某个版本开发的驱动,到另一个版本就不能用了!确实费尽
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我用gcc 2可以编译成功的代码,用gcc 3.3就会出现“undefine 妇function。。。”的问题,怎么回事啊,是不是linux就是这种样子,
那在某个版本开发的驱动,到另一个版本就不能用了!确实费尽
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
可能新编译器检查得比较严格,不规范的语法不让你过也可能。。。
c/C++本身的语法就一直在变化。所以编译器有相应的变化也是正常的。可能是你的语法在新的C/C++标准里不再是合法的了。
这个……
不敢苟同。
我认为,应该还是楼主的程序有问题。
C 的语法已经不变化好多年了……
1、GCC 对 C++ 的兼容程度一直在提高,以前不报错的非法代码可能会被新编译器认为错误
2、检查编译参数的不同,包括警告、-std / -ansi 和优化级别的不同
3、检查是否存在库的不兼容问题
好像最新的是c99,确实是好几年没有变了。还是编译器对标准的兼容程度一直在变化。这样说科学一些。呵呵
个人觉得,编译器的问题,和语法没什么关系!
但是没有办法!什么都要用实践去说话的!
为什么会和语法没有关系呢?看GCC3.2.3的RELEASE NOTES,很多关于语法的变化
可能是头文件里面有些什么宏要看编译器版本,以至于会说函数未定义。