0

我在 Fedora 27 上使用davidva/gcc49 copr 。

source /usr/bin/gcc49当我按照 copr 网页描述的方式运行后尝试编译时,出现以下错误:

/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 目录中?

4

1 回答 1

0

问题是 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/

于 2018-02-10T13:50:46.303 回答