AWS 上的 GLIBCXX 版本错误
GLIBCXX version error on AWS
这是对之前在这里提出的问题的扩展:libstdc++ GLIBCXX 版本错误
我有一个在本地运行良好的 Node.js 应用程序 (Ubuntu 16.04),但是当我将捆绑包上传到 AWS Elastic Beanstalk 时,我收到与我的 DLL 相关的错误。该应用程序使用 ffi 节点模块以 DLL (.so) 的形式调用C++函数。当应用程序在 AWS 上运行时,我收到 GLIBCXX 版本错误,导致动态链接调用失败。
虽然关于先前问题的帖子建议使用静态链接而不是动态链接,但这对我来说不是一个选择,因为C++附加组件必须是 dll。那么看来我需要编译我的 dll,使其使用早期版本的 GLIBCXX。
那么我的问题是:
- 如何知道我的 AWS 实例上运行的是哪个版本的 GLIBCXX?
- 如何编译我的 dll 以使用早期版本的 GLIBCXX?
- 无论如何都可以在AWS实例本身上解决这些问题(即不需要将dll重新编译为早期版本的GLIBCXX)
作为参考,这是我得到的确切错误:
错误:动态链接错误:/usr/lib64/libstdc++.so.6:版本 未找到"GLIBCXX_3.4.20"(需要 Code/C++/mathreco/TRUNK/src/lib/libsmath.so) 在新的动态库 (/var/app/current/node_modules/ffi/lib/dynamic_library.js:74:11)
在这里找到答案:如何修复:/usr/lib/libstdc++.so.6:未找到版本"GLIBCXX_3.4.15">
使用 -static-libstdc++ gcc 选项静态链接到 libstdc++。
出于某种原因,我认为我不能静态链接libstc++,因为我的库是动态链接的。很高兴它成功了!
相关文章:
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- C++中"覆盖功能的异常规范比基本版本更宽松"的奇怪错误
- 我将 Makefile 更改为 C++11 版本,但仍然收到列表初始值设定项错误
- 链接库错误 c/缺少 dll/错误版本?
- 创建 OpenCV 非自由版本 v4.3 时出错,可折叠.cpp错误 C2039、2605
- 解决与构建"Debug x64"版本的暗网相关的错误
- 成功完成TLS握手后,服务器关闭时出现错误的SSL例程:SSL3_GET_RECORD:错误的版本号
- Qt 应用程序中与Qt版本相关的运行时错误
- C++发布版本中的未来错误值
- clang --版本权限被拒绝错误
- 错误:不支持 GLSL 3.30.支持的版本包括:1.10、1.20、1.30、1.00 ES、3.00 ES、3.10
- Qt Debugger在Mac上使用错误的python版本
- VS2015中内置的程序的发布版本与Qt运行然后关闭没有错误?
- 片段着色器中的"错误:在 GLSL 1.30 及更高版本中禁止使用非常量表达式索引的采样器数组"
- wxWidgets 运行时错误(不匹配版本)
- 协议缓冲区错误版本
- 与NVIDIA链接的错误GCC版本
- 如何处理加载错误的共享库版本的情况
- 在 CentOS 7 上通过 devtoolset-4 安装的 Eclipse CDT 使用了错误版本的 gcc/g++
- 由于mcordbi.dll的错误版本,托管调试不再起作用