我最近将 Ubuntu 从 15.04 更新到 15.10。这些版本之间的主要区别之一是默认 gcc 版本从 gcc-4.9 -> gcc-5 的更新。我正在开发的库是为 gcc-4.9 编写和编译的,并且依赖于仅在 gcc-4.9 中工作的其他库。
我已经在我的计算机上安装了 gcc-4.9,我可以成功编译库和我的源文件。但是,当我尝试运行生成的程序时,出现此错误:
terminate called after throwing an instance of 'std::ios_base::failure[abi:cxx11]'
what(): basic_ios::clear: iostream error
Aborted (core dumped)`
源代码和我在这里尝试阅读的文件在升级之前可以正常工作。我曾尝试使用该-D_GLIBCXX_USE_CXX11_ABI=0
标志,但我不确定这是正确的做法,它也不起作用。
这是我当前包含在我的 makefile 中的标志的一个示例:
CPPFLAGS = -O0 -g3 -Wall -c -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++0x -fPIC -MMD -MP
有什么想法可以帮助我吗?