一般更新之后,会有两个或以上版本的 gcc.不建议使用 update-alternatives 来维护。
手动维护(gcc的符号链接) 就可以了。
$ ls /lib/cpp -l
lrwxrwxrwx 1 root root 21 Feb 19 2015 /lib/cpp -> /etc/alternatives/cpp
$ ls -l /etc/alternatives/cpp
lrwxrwxrwx 1 root root 12 Feb 19 2015 /etc/alternatives/cpp -> /usr/bin/cpp
$ ls /usr/bin/cpp -l
lrwxrwxrwx 1 root root 7 Apr 8 2014 /usr/bin/cpp -> cpp-4.9
$ which cc | xargs ls -l
lrwxrwxrwx 1 root root 20 Feb 19 2015 /usr/bin/cc -> /etc/alternatives/cc
$ ls -l /etc/alternatives/cc
lrwxrwxrwx 1 root root 12 Feb 19 2015 /etc/alternatives/cc -> /usr/bin/gcc
$ ls -l /usr/bin/gcc -l
lrwxrwxrwx 1 root root 7 Sep 5 22:11 /usr/bin/gcc -> gcc-4.9
~$ which gcc | xargs ls -l
lrwxrwxrwx 1 root root 7 Sep 5 22:11 /usr/bin/gcc -> gcc-4.9
~$ which g++ | xargs ls -l
lrwxrwxrwx 1 root root 7 Apr 8 2014 /usr/bin/g++ -> g++-4.9
$ which cpp | xargs ls -l
lrwxrwxrwx 1 root root 7 Apr 8 2014 /usr/bin/cpp -> cpp-4.9
在把 ubuntu 12.04上的 gcc 版本升级到 4.9之后,发现,使用gdb调试由 gcc 4.9编译的程序的时候,gdb看不到调试信息。
原因是,gdb办 版本 (7.4)太老了,更新到 7.7就没有这样的问题了。
如果不更新 gdb,需要在用 gcc 4.9编代码的时候,加上 -gdwarf-2。