Rocky是一个免费发行版,它重新打包了RHEL ()的每个版本。这就是CentOS过去的样子。
在AWS上有Rocky Linux 8 Green Obsidian (当前8.6 = RHEL 8.6)和Rocky Linux 9 Blue Onyx (当前9.0 = RHEL 9.0)的官方版本。
我正在使用g++ (gcc)。
在Rocky Linux8.6上: g++ (GCC) 8.5.0 20210514 (红帽8.5.0-10)
在Rocky Linux9.0上: g++ (GCC) 11.2.1 20220127 (红帽11.2.1-9)
具有动态连接的建筑物工作良好。在其他地方(例如,Ubuntu)使静态链接的构建工作得很好。
但是在Rocky平台(8或9)上似乎缺少了一些静态库,这会导致在尝试使用-static链接构建时出现错误消息。
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc查看整个系统中任何lib*.a的静态链接,我确实发现
/usr/lib/gcc/x86_64-redhat-linux/8/32/libstdc++.a不过,我认为这是为"32“位构建,而不是64位。我确实找到了用于动态链接的libm.so和libc.so,但是没有用于静态链接的libm.a或libc.a库。
使用yum,我找不到任何具有或提供libstdc++-静态的包。
gcc.x86_64和glibc-devel.x86_64已经安装好了。
需要什么才能获得静态构建所需的静态库?
提前感谢!
发布于 2022-08-04 21:15:24
libstdc++-static包位于CRB (CodeReady Builder)存储库中。您可以这样安装:
9
dnf --enablerepo=crb install libstdc++-static8
dnf --enablerepo=powertools install libstdc++-static发布于 2022-08-09 21:17:52
提供了一个答案,使相关回购仅针对具体安装。
作为另一种选择,如果您希望由于某种原因(例如,为了多个安装或操作)而使回购保持启用,则还可以执行以下操作。
9
sudo dnf config-manager --set-enabled crb8
sudo dnf config-manager --set-enabled powertools然后,您可以使用任何数量的命令,需要回购才能启用。
sudo dnf install -y libstdc++-static..。
sudo dnf install -y glibc-statichttps://stackoverflow.com/questions/73242249
复制相似问题