陷入遗留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是一个艰难的学习曲线,但这是一次性的成本.它们将使您开展的每个未来项目更容易设置.您还需要检查目标计算机是否支持自动工具,如果支持,则支持哪个版本的工具.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...