解决问题的步骤
在本地电脑上查找是否有这个库文件
sudo find /usr/ -name libgcc_s.so
结果如下所示
/usr/lib/gcc/x86_64-linux-gnu/7/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/x32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
/usr/lib/x86_64-linux-gnu/libgcc_s.so
以上说明在本地电脑上有该文件。
查找文件的搜索路径
ld -lgcc_s --verbose
结果如下
试图打开 //usr/local/lib/x86_64-linux-gnu/libgcc_s.so 失败
试图打开 //usr/local/lib/x86_64-linux-gnu/libgcc_s.a 失败
试图打开 //lib/x86_64-linux-gnu/libgcc_s.so 失败
试图打开 //lib/x86_64-linux-gnu/libgcc_s.a 失败
试图打开 //usr/lib/x86_64-linux-gnu/libgcc_s.so 失败
试图打开 //usr/lib/x86_64-linux-gnu/libgcc_s.a 失败
试图打开 //usr/lib/x86_64-linux-gnu64/libgcc_s.so 失败
试图打开 //usr/lib/x86_64-linux-gnu64/libgcc_s.a 失败
试图打开 //usr/local/lib64/libgcc_s.so 失败
试图打开 //usr/local/lib64/libgcc_s.a 失败
试图打开 //lib64/libgcc_s.so 失败
试图打开 //lib64/libgcc_s.a 失败
试图打开 //usr/lib64/libgcc_s.so 失败
试图打开 //usr/lib64/libgcc_s.a 失败
试图打开 //usr/local/lib/libgcc_s.so 失败
试图打开 //usr/local/lib/libgcc_s.a 失败
试图打开 //lib/libgcc_s.so 失败
试图打开 //lib/libgcc_s.a 失败
试图打开 //usr/lib/libgcc_s.so 失败
试图打开 //usr/lib/libgcc_s.a 失败
试图打开 //usr/x86_64-linux-gnu/lib64/libgcc_s.so 失败
试图打开 //usr/x86_64-linux-gnu/lib64/libgcc_s.a 失败
试图打开 //usr/x86_64-linux-gnu/lib/libgcc_s.so 失败
试图打开 //usr/x86_64-linux-gnu/lib/libgcc_s.a 失败
ld: 找不到 -lgcc_s
建立一个硬链接过去,使得可以连接到这个库文件
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so /usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
建立一个链接到库文件上,注意此时如果还不行,检查对应硬链接的指向,一定不要指向一个空文件。
对于本问题应该掌握的知识
命令行代码知识
主要的命令行代码如下
sudo find /usr/ -name libgcc_s.so
ld -lgcc_s --verbose
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so /usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
第一行对应的是查找函数,按名称查找。
ldd命令用于判断某个可执行的 binary 档案含有什么动态函式库。–verbose 打印所有信息,例如包括符号的版本信息
ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。建立后面文件的一个链接。
隐含知识
库文件的文件名一般为-libName.so,在编译时的一般为-lName.
参考文献
如果仍然没有帮助,请参考下面网址:Install G77 on Ubuntu >=14.04。