在编写代码时,有时候会需要静态链接libstdc++.a库,但是存在只有libstdc++.so的动态库没有libstdc++.a静态库的情况。
首先运行命令,查看系统中是否存在libstdc++.a静态库。
find / -name libstdc++.a
如果不存在可以通过以下命令查找包含libstdc++.a文件的软件包名称
sudo dnf provides '*/libstdc++.a'
通过安装包括了libstdc++.a文件的软件包来获取libstdc++.a,这样就不需要通过源码编译来获取了。
sudo dnf install gcc-toolset-12-libstdc++-devel
安装后再次运行命令,查找libstdc++.a文件的位置。
find / -name libstdc++.a
最后将复制文件到/usr/lib64目录中,在静态链接是会自动查找。
cd /opt/rh/gcc-toolset-12/root/usr/lib/gcc/aarch64-redhat-linux/12
cp ./libstdc++.a /usr/lib64