这是前一个问题的扩展:libstdc++ GLIBCXX version errors
我有一个本地运行良好的Node.js应用程序(Ubuntu 16.04),但是当我将该软件包上传到AWS Elastic Beanstalk时,我收到与我的DLL相关的错误。该应用程序使用ffi node-module以DLL(.so)的形式调用C ++函数。当应用程序在AWS上运行时,我收到GLIBCXX版本错误,导致动态链接调用失败。
虽然以前的问题上的帖子建议使用静态链接而不是动态链接,但这不是我的选择,因为C ++插件必须是dll。似乎我需要编译我的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)
答案 0 :(得分:0)
在此处找到答案:How to fix: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
使用-static-libstdc ++ gcc选项静态链接到libstdc ++。
出于某种原因,我不认为我可以静态链接libstc ++,因为我的库是动态链接的。很高兴它有效!