在 ubuntu 18.04 上与 gcc/g++ 7.3.0 的链接错误
Linking error with gcc/g++ 7.3.0 on ubuntu 18.04
我有一个项目,其中我使用 -lcblas 标志 link 到 BLAS 库。它曾经编译得很好,直到将我的系统升级到 Ubuntu 18.04 和 GCC 7.3.0 之后。反正编译命令是
g++ -o @$ benchmark.o mine.o -lcblas
产生错误
/usr/bin/x86_64-linux-gnu-ld: benchmark.o: relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: final link failed: Nonrepresentable section on output
这个问题可能是重复的,但我无法将解决方案转化为其他与我的问题类似的问题。
can not be used when making a PIE object; recompile with -fPIC
Ubuntu 18.04 : g++-5 (5.5), g++-6, g++-7 默认配置PIE。
要么使用 g++ -no-pie -o ... ..
,要么使用 g++-4.8 : sudo apt install g++-4.8 。参考
Ubuntu 16.04 和 18.04 的额外编译器 → "no PIE" g++54 : gcc54-c++_5.4.0-ubuntu16_amd64.deb
→ 提供 /usr/bin /{gcc54, g++54, gfortran54}. Link : https://drive.google.com/file/d/1ptHLaZXImpeMzq4xuuGGn5VjrvxNSop3/view?usp=sharing
更多 gcc(无 PIE)https://drive.google.com/drive/folders/1xVEATaYAwqvseBzYxKDzJoZ4-Hc_XOJm?usp=sharing
我有一个项目,其中我使用 -lcblas 标志 link 到 BLAS 库。它曾经编译得很好,直到将我的系统升级到 Ubuntu 18.04 和 GCC 7.3.0 之后。反正编译命令是
g++ -o @$ benchmark.o mine.o -lcblas
产生错误
/usr/bin/x86_64-linux-gnu-ld: benchmark.o: relocation R_X86_64_32 against `.bss' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: final link failed: Nonrepresentable section on output
这个问题可能是重复的,但我无法将解决方案转化为其他与我的问题类似的问题。
can not be used when making a PIE object; recompile with -fPIC
Ubuntu 18.04 : g++-5 (5.5), g++-6, g++-7 默认配置PIE。
要么使用 g++ -no-pie -o ... ..
,要么使用 g++-4.8 : sudo apt install g++-4.8 。参考
Ubuntu 16.04 和 18.04 的额外编译器 → "no PIE" g++54 : gcc54-c++_5.4.0-ubuntu16_amd64.deb
→ 提供 /usr/bin /{gcc54, g++54, gfortran54}. Link : https://drive.google.com/file/d/1ptHLaZXImpeMzq4xuuGGn5VjrvxNSop3/view?usp=sharing
更多 gcc(无 PIE)https://drive.google.com/drive/folders/1xVEATaYAwqvseBzYxKDzJoZ4-Hc_XOJm?usp=sharing