CentOS6.3编译fibjs
下载 fibjs
开始编译
有一点需要说明一下,你看清楚编译环境的要求了么!!!!
GCC 4.6 or newer CMake 2.6 or newer GNU Make 3.81 or newer libexecinfo (FreeBSD and OpenBSD only)
没有特殊情况下你一定会在开始v8编译的时候就会报错,报语法错误,原因是CentOS的gcc的版本肯定<4.6,哈哈^_^,重头戏在后面,升级gcc
下面重点说下升级gcc
由于fibjs是基于v8的,编译v8目前已经要求gcc的版本是4.6或者以上的了
-
下载源码包
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2
解压:tar -jxvf gcc-4.8.0.tar.bz2 -
下载编译所需依赖库
cd gcc-4.8.0 ./contrib/download_prerequisites cd ..
-
建立编译输出目录
mkdir gcc-build-4.8.0
-
进入此目录,执行以下命令,生成makefile文件
cd gcc-build-4.8.0 ../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
-
编译 make -j4 #简单的可以使用make,参数j是配置资源使用情况的
时间会比较长的,我用了一个小时,没办法,机器差,大学买的本本。 -
安装
sudo make install
-
切换GCC到新版 确定新安装的GCC的路径,一般默认在/usr/local/bin下。
添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40
-
执行完地7步,重新开个shell,看看 gcc -v输出什么是不是版本已经修改过了成我们刚刚编译好的了。
-
通过我的错误日志可以看出编译fibjs使用了/usr/bin/cc,/usr/bin/c++两个编译程序
cd /usr/bin ./cc -v ./c++ -v
看下是不是已经更改为最新的版本了,如果已经是最新的版本那么下面的就不用看了,去编译fibjs喽。
-
看到这里一定是/usr/bin目录中的指向还没有修改为新的版本,下面开始修改
cd /usr/bin #rm cc gcc c++ g++ #不建议删除,原因是有可能那天需要降低gcc的版本 mv cc cc.bak #其实这步可以不错,cc连接到gcc mv gcc gcc.bak mv c++ c++.bak mv g++ g++.bak ln -s /usr/local/bin/gcc-4.8 cc ln -s /usr/local/bin/gcc-4.8 gcc ln -s /usr/local/bin/c++-4.8 c++ ln -s /usr/local/bin/g++-4.8 g++
-
结束,搞完,终于可以在CentOS上搞fibjs啦。。。。。
参考资料
- http://www.cnblogs.com/peterpanzsy/archive/2013/04/10/3006838.html
- http://lonelyprogram.blog.51cto.com/6246243/1355261
- http://apple.stackexchange.com/questions/99077/how-to-set-gcc-4-8-as-default-gcc-compiler
- 我的脑袋