升级ubuntu中的gcc和g++版本


在利用张乐博士的最大熵模型工具包(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 gcc
sudo rm g++
sudo ln -s g++-4.7 g++

4.现在编译并执行例程,ok!编译通过了!







sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
gcc -v
sudo updatedb
sudo ldconfig
locate gcc
gcc -v
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49  
gcc -v
locate g++
g++ -v
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 49
g++ -v
sudo update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.9 49
sudo update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.9 49
sudo update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.9 49



有些手机练到Ubuntu上用adb devices找不到设备,原因是“adb内建有一个知名的厂商ID列表,对于列表内的设备,adb可以直接连接,而不在列表中的设备,它会直接返回,这也就是为什么android设备的驱动已经安装好了,而adb连接不上的原因。”
解决方案:
1. 用lsusb命令查询usb设备id
升级ubuntu中的gcc和g++版本_第1张图片
其中,Device 027是我的手机设备,usb id为2717。
2. 进入~/.android/目录,创建adb_usb.ini文件;
3. 编辑adb_usb.ini文件,将设备的usb id添加到文件里
这里写图片描述
4. adb kill-server杀死adb服务;
5. 最后,用adb devices重新查找设备,就可以找到了;

你可能感兴趣的:(linux)