【发布时间】:2023-08-02 07:07:02
【问题描述】:
我想使用 cloud9 在我的 BeagleBone Green 卡上开发我的 ReactJs 和 Nodejs 应用程序,所以每次我安装 nodejs 或使用 npm 执行命令时都会出现这个错误。
https://i.stack.imgur.com/Ie095.png
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: node.js npm cloud9-ide beagleboneblack beagleboard
我想使用 cloud9 在我的 BeagleBone Green 卡上开发我的 ReactJs 和 Nodejs 应用程序,所以每次我安装 nodejs 或使用 npm 执行命令时都会出现这个错误。
https://i.stack.imgur.com/Ie095.png
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: node.js npm cloud9-ide beagleboneblack beagleboard
您的 node 可执行文件已构建为需要比 BeagleBone 上安装的版本更高版本的 libstdc++(GNU 标准 C++ 库)和 libc(GNU 标准 C 库)。
要解决此问题,您需要下载这些库的较新版本并将它们提供给node。从https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html 的信息看来,您至少需要libstdc++.so.6.0.20 和至少libc-2.16。
在正在运行的系统上更改系统库会涉及一些风险。这样做的方法是将新库放在旧库旁边(不要删除或重命名旧库),然后重新制作现有的 libstdc++.so.6 和 libc.so.6 符号链接以指向新库。符号链接是程序进入实际库所遵循的。 (如果您查看这些符号链接,您会发现它们现在指向旧库。)您必须在一个命令中重新制作符号链接,如果重新制作 libc 符号链接失败,那么您将陷入困境。
如果您可以从正确构建的包中获取更新的库,那么这应该比尝试手动执行更安全,因为包应该为您处理重新链接。
或者,您可以将新库放在与系统库分开的某个目录中,在该目录中创建新的 libstdc++.so.6 和 libc.so.6 符号链接,然后使用 LD_LIBRARY_PATH 环境变量导致 @987654329 @ 和 npm 在该位置查找它们。这样更安全,但有点丑。
【讨论】: