1 问题描述
问题描述:g++:error: unrecognized option '--no-undefined'
2 问题定位
在安装abiword-2.8.6过程中遇到上面这个问题,经过网上一番痛苦的搜索和尝试,终于找到问题的原因,原来是gcc、g++编译器版本过高,在gcc-4.6.0以后的版本不再使用LDFLAGS=-no-undefined这样的选项设置。而看了下自己的gcc、g++版本如下:
我的gcc版本:gcc version 4.6.1(使用命令:gcc -v)
我的g++版本:tu:~/abiword-2.8.6# g++ 4.6.1(使用命令:g++ --version)
也可以使用命令:ls -l /usr/bin/gcc* 和 ls -l /usr/bin/g++* 来查询。
3 问题解决
所以现在就得安装低于4.6.1的版本,我选择的是gcc-4.4:
3.1 gcc-4.4的安装和配置过程
联网:
输入命令:sudo apt-get install gcc-4.4
输入命令:sudo apt-get install g++-4.4
查看安装后的gcc、g++版本表:
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/g++*:
lrwxrwxrwx 1 root root 7 2011-08-14 15:17 /usr/bin/g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2012-04-16 10:56 /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 /usr/bin/g++-4.6
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/gcc*
lrwxrwxrwx 1 root root 7 2013-09-08 20:50 /usr/bin/gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2012-04-16 10:58 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6
3.2 更改Ubuntu gcc、g++默认编译器版本
发现gcc链接到gcc-4.6, 需要将它改为链接到gcc-4.4:
1.删除gcc-4.6的软连接文件/usr/bin/gcc。(只是删除软连接)
命令:sudo rm /usr/bin/gcc
删除后的结果:(此时软连接已经删除)
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/gcc*
-rwxr-xr-x 1 root root 224544 2012-04-1610:58 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-1705:43 /usr/bin/gcc-4.6
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/g++*
-rwxr-xr-x 1 root root 228640 2012-04-1610:56 /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-1705:39 /usr/bin/g++-4.6
2.然后建一个软连接,指向gcc-4.4。
命令:sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
建立好后的结果:
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/g++*
lrwxrwxrwx 1 root root 16 2014-07-31 15:57 /usr/bin/g++-> /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 228640 2012-04-1610:56 /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-1705:39 /usr/bin/g++-4.6
root@ubuntu:~/abiword-2.8.6# ls -l/usr/bin/gcc*
lrwxrwxrwx 1 root root 16 2014-07-31 15:56 /usr/bin/gcc -> /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 224544 2012-04-1610:58 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-1705:43 /usr/bin/gcc-4.6
此时在用刚开始查看gcc、g++的版本信息,就发现全部变为4.4了。