我正在运行一个使用Buildroot配置的最小linux。所有程序都可以正常工作,直到我在目标上运行一个跨构建应用程序,该应用程序产生以下错误:
/lib/libstdc++.so.6: no version information available
strings /lib/libstdc++.so.6 | grep GLIBCXX
在TARGET Machine
上的输出是:
GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
上述命令在BUILD Machine
上的输出如下:
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_DEBUG_MESSAGE_LENGTH
当存在glibcxx版本错配时,似乎会出现此错误。然后我尝试在buildroot中检查BR2_INSTALL_LIBSTDCPP
选项,但是我们不能更改/更新glibcxx版本。
如何解决这一问题?
发布于 2019-10-22 05:11:03
听起来你的构建环境设置错了。
如果使用Buildroot构建目标,则必须使用相同的工具链和环境构建应用程序。有两种选择:
请参阅Buildroot文档和此出色的报告(PDF)。特别是第27和34页。
如果您处理的是供应商SDK和工具链,则是一个特例。然后,您将需要将供应商工具链集成到Buildroot中,这是非常简单和文档化的。无论如何,结果必须是您对两者使用相同的工具链和头。
https://stackoverflow.com/questions/58496314
复制相似问题