/ lib / libstdc ++。so.6:无版本信息可用

问题描述 投票:0回答:1

我正在运行使用Buildroot配置的最小Linux。一切正常,直到我在目标上运行我的跨版本应用程序之一,并产生以下错误:

/lib/libstdc++.so.6: no version information available

[strings /lib/libstdc++.so.6 | grep GLIBCXXTARGET 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版本。

如何解决此问题?

c++ glibc beagleboneblack buildroot
1个回答
0
投票

听起来很像您的构建环境设置错误。

如果要使用Buildroot构建目标,那么必须也要使用相同的工具链和环境来构建应用程序。两个选项:

  • 从(Buildroot)树构建应用程序
  • 将您的应用程序构建为Buildroot中的包

请参阅Buildroot文档和此excellent presentation (PDF)。特别是第27和34页。

[特殊情况是,您要处理供应商的SDK和工具链。然后,您需要将供应商工具链集成到Buildroot中,这非常简单并有文档记录。无论如何,结果必须是您对两者使用相同的工具链和标头。

© www.soinside.com 2019 - 2024. All rights reserved.