如果你的ubuntu是最新的或者比较新的版本,那么在编译过程中,会出现:
- <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
- <built-in>:0:0: note: this is the location of the previous definition
- cc1plus: all warnings being treated as errors
这样的错误,这个错误引起的原因在于gcc的版本太高了,gcc -v 可以看见是4.6.1的;
解决方法为:安装gcc4.4的
- sudo apt-get install gcc-4.4
- sudo apt-get install g++-4.4
安装完成后需要将原gcc替换成gcc4.4的:
进入/usr/bin,用ls -l gcc* 可以看到:
- lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
- -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
- -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
通过一下命令实现替换:
- sudo mv gcc gcc.bak
- sudo ln -s gcc-4.4 gcc
对于g++同理:
- lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
- -rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
- -rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
- /usr/bin$ sudo mv g++ g++.bak
- /usr/bin$ sudo ln -s g++-4.4 g++
现在可以通过gcc -v查看版本信息了,为gcc-4.4就正确了,可以编译了