c++ - arm-linux libstdc++ 调试和发布的区别

标签 c++ linux arm dynamic-linking libstdc++

我对此感到非常生气,所以非常感谢任何帮助。

我有一个为arm-linux 编译的C++ 应用程序。我有两个不同的版本:

  • 调试(使用 -o0 -g3 编译)
  • 发布(使用 -o3 编译)

两个版本的包含路径、库路径和库都是相同的。

当我运行调试版本时,它崩溃了(我正在调查原因)。

当我运行发布版本时,我收到此错误:

../Appl_arm-linux_Release:/usr/lib/libstdc++.so.6:找不到版本 GLIBCXX_3.4.20(../Appl_arm-linux_Release 需要)

我不明白为什么 Debug 版本可以在 Release 版本甚至无法加载的系统上运行。

最佳答案

您可以尝试使用 -static-libstdc++ 链接器选项来静态链接 libstdc++。来自信息here ,看起来您仍然可以动态链接其他库。

关于c++ - arm-linux libstdc++ 调试和发布的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983857/

相关文章:

c++ - 如何设置一个 "precise"周期定时器来监视 Linux(C/C++) 中的东西?

c++ - 从 boost 创建的缓冲区访问数据

c++ - Friend 函数,期望 Primary Expression before 。 token

c++ - 质因数生成 C++

c - 在 Linux 上用 C 语言运行二次方程求解器

linux - ARM 在 WinCE 和 Linux 上的调用约定?

C PF_PACKET 链路层处理

linux - 在unix下执行有管道的命令会使用多少个进程?

c - 为什么retarget.o归档到静态库中时,retarget.c中的 "_write"等函数没有链接?

c - 第三方C静态库: Add -ffunction-sections -fdata-sections