【发布时间】:2017-08-23 13:50:15
【问题描述】:
这是对上一个问题的扩展:libstdc++ GLIBCXX version errors
我有一个在本地运行良好的 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”(需要 代码/C++/mathreco/TRUNK/src/lib/libsmath.so) 在新的 DynamicLibrary (/var/app/current/node_modules/ffi/lib/dynamic_library.js:74:11)
【问题讨论】:
标签: c++ node.js amazon-web-services dll