微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

陷入遗留C IO库和标准化IO库之间

我的问题是在经历了挫折之后,实际上我最近研究了标准的C IO库.我是在 Linux机器上开发的,所以一切都很好.因为我使用了文件io(file.exceptions(flags)))的异常处理,这是旧版GNU C编译器不支持的.实际的部署机器有非常旧版本的g可能是2.9倍的东西.我正在编写一个数据记录器应用程序,因为我编写了大量依赖try-catch对的代码.我现在应该怎么做.我尝试声明从std :: exception继承的异常.有用.将fstream包装在头文件中是个好主意.如果是的话,我应该怎么做,比如继承,或者只是换行?

解决方法

因为你正在使用linux& gcc已经开始使用GNU autotools了.解决这种类型的可移植性问题是autotools的核心目的之一.

autotools将生成一个名为config.h的文件,其中包含一组#defines,用于指示环境中是否存在某些功能. (在这种情况下,AC_CXX_EXCEPTIONS可能是您想要的检查.)然后,您可以使用#ifdef标记让预处理器排除您专门编写的代码,以便在配置脚本看到它们不必要时与旧编译器兼容.

你第一次使用autotools是一个艰难的学习曲线,但这是一次性的成本.它们将使您开展的每个未来项目更容易设置.您还需要检查目标计算机是否支持自动工具,如果支持,则支持哪个版本的工具.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐