gpt4 book ai didi

c++ - AWS 上的 GLIBCXX 版本错误

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:01 25 4
gpt4 key购买 nike

这是对之前在这里提出的问题的扩展:libstdc++ GLIBCXX version errors

我有一个在本地运行良好的 Node.js 应用程序 (Ubuntu 16.04),但是当我将 bundle 上传到 AWS Elastic Beanstalk 时,我收到与我的 DLL 相关的错误。该应用程序使用 ffi Node 模块以 DLL (.so) 的形式调用 C++ 函数。当应用程序在 AWS 上运行时,我收到 GLIBCXX 版本错误,导致动态链接调用失败。

虽然关于先前问题的帖子建议使用静态链接而不是动态链接,但这对我来说不是一个选项,因为 C++ 附加组件必须是一个 dll。看来我需要编译我的 dll,以便它使用早期版本的 GLIBCXX。

我的问题是:

  1. 我如何知道我的 AWS 实例上运行的是哪个版本的 GLIBCXX?
  2. 如何编译我的 dll 以使用早期版本的 GLIBCXX?
  3. 有没有办法在 AWS 实例本身上解决这些问题(即不需要将 dll 重新编译为早期版本的 GLIBCXX)

作为引用,这是我得到的确切错误:

Error: Dynamic Linking Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by Code/C++/mathreco/TRUNK/src/lib/libsmath.so) at new DynamicLibrary (/var/app/current/node_modules/ffi/lib/dynamic_library.js:74:11)

最佳答案

在这里找到答案:How to fix: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found

Link statically to libstdc++ with -static-libstdc++ gcc option.

出于某种原因,我认为我无法静态链接 libstc++,因为我的库是动态链接的。很高兴它成功了!

关于c++ - AWS 上的 GLIBCXX 版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43104276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com