Fedora 27 上的 gcc49:/usr/bin/ld:找不到 -lgcc_s

gcc49 on Fedora 27: /usr/bin/ld: cannot find -lgcc_s

我在 Fedora 27 上使用 davidva/gcc49 copr

当我尝试按照 copr 网页描述的那样在 运行 source /usr/bin/gcc49 之后进行编译时,出现此错误:

/usr/bin/ld: cannot find -lgcc_s

了解标志 -l 如何为 gcc 工作后,我了解到它正在寻找库 gcc_s。我在 /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/lib64 中找到了它,这听起来像是正确的位置。为什么不链接?我需要将目录添加到库路径吗?如果是 LDFLAGS,由于我获取的文件,它已经存在了:

export LDFLAGS="-L/opt/gcc-$gver/$lib/gcc/$gcc_target_platform/$lib/" 

Fedora 27上的gcc 4.9如何才能找到它的库文件,明明在LDFLAGS目录下?

问题是 libgcc_s.so 文件在错误的目录中!只需在 4.9.3 目录中对其进行符号链接:

pushd /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/4.9.3
sudo cp -p ../lib64/libgcc_s.so.1 .
sudo ln -s libgcc_s.so.1 libgcc_s.so
popd

我想 /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/lib64 目录应该包含在任何 LDFLAGS 参数中,这可能是我使用的构建过程的弱点,而不是 gcc 4.9包。

将此文件和适当命名的符号链接放在 4.9.3 目录中可以让我的构建过程成功完成。

参考:https://bgstack15.wordpress.com/2018/02/01/gcc-4-9-for-fedora-27/