SIGABRT在raise.c? 我正在开发一个小型的C++程序,它可以使用服务器的REST API远程管理服务器。

SIGABRT在raise.c? 我正在开发一个小型的C++程序,它可以使用服务器的REST API远程管理服务器。,c++,runtime-error,C++,Runtime Error,最近,我不得不在我用来开发程序的计算机上重新安装Debian,现在我在运行时遇到一个SIGABRT错误: Program received signal SIGABRT, Aborted. In __kernel_vsyscall () () 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. #1 0xb731f307 in __GI_raise (sig=sig@entry=6) at ../npt

最近,我不得不在我用来开发程序的计算机上重新安装Debian,现在我在运行时遇到一个SIGABRT错误:

Program received signal SIGABRT, Aborted.
In __kernel_vsyscall () ()
56  ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
#1  0xb731f307 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
如果你想知道,我镜像了我以前的安装

如果有帮助,以下是我用来开发该计划的内容列表:

  • Debian stretch/sid,i386体系结构
    • 代码::阻止版本svn 10561
    • GCC工具链(安装版本为GCC 4.8、GCC 4.9和GCC 5)
    • GDB 7.10
我还使用以下库:

  • wxWidgets 2.8.12
  • Boost 1.59.0(我根据
  • cpp netlib 0.11.2(我使用
    CMake
    构建了它)
  • 超级易用JSON
小精度:我开始怀疑wxWidgets,因为我开始在老师给我的wxWidgets示例中发现类似的错误

提前感谢您的回答

此外,如果您需要更多信息,请随时询问

编辑:我找到了这个问题背后的原因。wxWidgets 2.8和我的程序是用不同版本的GCC构建的。我从终端调用了GDB,得到如下结果:

Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,**compiler with C++ ABI 1002**,wx containers,compatible with 2.6),
and your program used 2.8 (no debug,Unicode,**compiler with C++ ABI 1009**,wx containers,compatible with 2.6).

因为这是一个不同的问题,所以这个问题可以解决。

非常困难,几乎不可能对实际发生的情况进行诊断。请重新编译代码。问题是ABI版本不匹配。我刚刚在compiler options.Hm中添加了-fabi version=2,这在适当的发行版中是不应该发生的。你手工编译过这个库吗?如果是,请重新编译。如果没有,也安装所需版本的库。@KarolyHorvath:我使用
apt get
安装了wxWidgets 2.8。Debian的
sid
/
unstable
分支上提供的wx2.8包似乎是用GCC4.x构建的,code::Blocks默认为GCC5.2。