繁体   English   中英

冲突的C ++库

[英]Connflicting C++ libraries

我试图在我的VM中安装RPM,并且在yum install期间收到以下消息。

file /usr/lib64/libstdc++.so.6 from install of myPackage.x86_64 conflicts with file from package libstdc++-4.8.5-16.el7_4.2.x86_64
file /usr/lib64/libz.so.1 from install of myPackage.x86_64 conflicts with file from package zlib-1.2.7-17.el7.x86_64
file /usr/lib64/libgcc_s.so.1 from install of myPackage.x86_64 conflicts with file from package libgcc-4.8.5-16.el7_4.2.x86_64
file /usr/lib64/libgomp.so.1 from install of myPackage.x86_64 conflicts with file from package libgomp-4.8.5-16.el7_4.2.x86_64
file /usr/lib64/libgomp.so.1.0.0 from install of myPackage.x86_64 conflicts with file from package libgomp-4.8.5-16.el7_4.2.x86_64

我正在Centos7中运行,并且我很确定libstdc ++-4.8.5-16即将出现,因为我从Centos仓库安装了gdb(我正在安装一组预打包的RPMS)。

有没有办法解决这些冲突? 例如,是否可以告诉gdb使用最新的libstdc ++库?

无论您尝试安装哪种神秘软件包,都表现不好。 它正在尝试安装某些共享库文件,这些共享库文件按权利由CentOS 7上的libstdc ++软件包“拥有” 。Yum正确地拒绝了该神秘软件包,因为这种行为。

您应与包装作者联系,并告知他们包装不符合质量准则。 如果他们肯定在绝对要比在此环境中正式发行的软件更新版本的libstdc ++ ,那么他们可以:

  • 使用devtoolset ,或
  • 静态链接运行时 ,或者
  • 打包较新的共享库, 但将其安装在孤立的地方 ,该位置只能由神秘软件使用。 除非您希望它引起怪异的运行时行为,否则它不能接管平台自己的程序包,因为系统上的所有其他C ++应用程序突然都与一些神秘的GCC运行时库版本链接在一起。

如果不需要不同的共享库版本,那么作者应该:

  • 首先要针对正式发行的库进行构建,并且
  • 在它们的RPM的.spec文件中表示前提条件,例如, libstdc ++libgomp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM