编译过程中 出现ld returned 1 exit status的问题解决方案

话说我出现这个错误是在编译安装osrm这个软件中出现的,预编译通过,make的时候出这个报错,ld returned 1 exit status。第一反应是动态链接库的问题,但百度一番后并没有发现任何有效的结果。

这个就很让人郁闷了,怎么办?突然想起这个版本的osrm是对gcc的版本有要求的,而我使用的gcc是偷懒方式安装的devtooset版本gcc6.3.1版本,并利用其自带脚本激活了gcc6,中间关闭了一次shell窗口,。此时,gcc -v输出为4.8.5,可见make的时候并没有使用gcc 6版本,因此,再次激活gcc6,重新编译 make &&make install,编译顺序通过。

总结:

如果报错ld returned在使用的编译器版本和源码编译所需的gcc编译器版本有差距,首先,查询编译工作需要的gcc编译器版本,然后使用适当的编译器编译,问题一般都会迎刃而解的。

Linux下的编译工作通常都是使用gcc和它的套件gcc-c++,有些比较新的软件比如MySQL8就需要高版本的gcc,boost,但对gcc-c++并无要求。