在利用张乐博士的最大熵模型工具包(Maximum Entropy Modeling Toolkit for Python and C++)和条件随机场的经典工具包CRF++(CRF++: Yet Another CRF toolkit)进行分词的时候,发现工具包不能正常安装,从报出的错误推测是gcc的版本较低,上述工具包发布于2011年,推测使用了较新的C++11标准。我们知道C++11标准开始支持各种新的特性。本人测试用的Ubuntu10.04默认的是使用gcc4.4.3,而只有gcc4.7才开始支持C++11,使用如下办法升级Ubuntu 10.04下的gcc和g++:
1.更新Ubuntu的gcc和g++版本,依次进行如下操作:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
2.本人安装过程中提示有存在依赖关系的文件未安装,gcc-4.6-base,则先安装该软件:
sudo apt-get install gcc-4.6-base
3.升级完成使用gcc --version
(1)若显示有多个软件包包含gcc,让选择一个安装。可是进行gcc重新又显示已经安装。进入/usr/bin/目录后发现gcc-4.7和g++-4.7都存在,但是未发现他们的链接gcc和g++(其实我们平常使用的gcc和g++都是指向具体版本例如gcc-4.7和g++-4.7的符号链接哦),因此重建符号链接即可
cd /usr/bin
sudo ln -s gcc-4.7 gcc
sudo ln -s g++-4.7 g++
(2)若显示版本依然是4.4.3(或者你的旧版本号),并没有把4.7版设置为默认的gcc的链接文件,进入/usr/bin/把gcc这个文件删除,建立链接到gcc-4.7(g++类似):
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 g++
sudo rm g++
sudo ln -s g++-4.7 g++
4.现在编译并执行例程,ok!编译通过了!