系统:ubuntu16.04.1
软件:Virtualbox-5.1
编译器:GCC 4.7.4
在如上环境下安装Vbx5.1提示我在终端执行/sbin/vboxconfig命令,照做出现如下error:
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-install.log to find out what went wrong.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root.
查看/var/log/vbox-install.log文件得知是由于gcc编译器引起的:
gcc: 错误: unrecognized command line option ‘-fstack-protector-strong’
由于我使用ubuntu16.04编译android5.0所以安装了gcc4.7版本,而不是16.04自带的gcc5.4版本。
后来在安装VMware的时候,只有使用gcc5.4才可以编译kernel,马上想到Virtualbox5.1是不是也是这个原因造成的,遂尝试之。成了。
使用如下命令切换到gcc5.4,即提高gcc5.4的优先级:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50
使用gcc -v可知gcc当前版本为5.4,若不是5.4版本,则把5.4的优先级再提高些。
继续执行如下命令:
sudo /sbin/vboxconfig
若依旧失败,则卸载掉Virtualbox以及配置文件重新安装即可。
sudo apt-get purge virtualbox
最后重新切换gcc版本回4.7,不然在编译android5.0会出问题:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 100