SDB:安装和使用Intel C++ Compiler
简介
Intel C++ Compiler,简称icc,是英特尔公司开发的C/C++编译器,适用于 Linux、Microsoft Windows、Mac OS X 以及搭载intel芯片的Android操作系统。 此编译器支持x86架构的CPU,对intel自家的处理器有很大的编译优化,并且对AMD的处理器也有一定的性能提升,使用此编译器可提高程序的运行速度,故在很多需要大量运算的场合下,很多人会考虑使用intel编译器。 但intel编译器不是开源软件,而是商业闭源软件,不过我们可以免费获得其非商业版本,既然是免费的,除了一些非开源不用的人,就可以尝试使用一下了。
下载
1.下载编译器到官网搜索下载非商业版本的icc编译器,需要注意的是,icc编译器没有单独作为一个产品提供下载,它是包含在“Intel® C++ Composer XE”里面的,所以你要下载当前最新的Intel® C++ Composer XE for Linux。
下载URL:https://software.intel.com/en-us/non-commercial-software-development
2.下载前你需要接受协议和注册邮箱,提供你的邮箱,以获取安装一个非商业版本的安装注册码。
3.注册邮箱之后,检查你的邮箱收件箱,打开intel给你发的邮件,打开下载页下载Intel® C++ Composer XE for Linux。建议下载最新完整版。
安装
1.解压(以2013版sp1为例)
$ tar xfzv l_ccompxe_2013_sp1.0.080.tgz
2.进入解压后目录
$ cd l_ccompxe_2013_sp1.0.080
3.安装有图形化安装和交互式文本安装,图形化安装方式简单方便,但不能选择安装的内容,只能完全安装,而文本安装可以定制安装的组件。
(1)图形安装 以root权限运行install_GUI.sh
# ./install_GUI.sh
然后根据提示选择安装路径和输入注册码(包含在邮件里面)。
(2)文本安装 以root权限运行install.sh
# ./install.sh
文本化安装分七步,按照提示选择和输入,并按回车键确认。
当执行到第五步的时候,可以配置安装选项,选择编译器架构,设置安装位置和组件,设置完成后即可执行安装。
安装完成后即可按回车键退出。
配置
安装完成之后不能立即使用,必须把编译器加入环境变量。
假设你选择了默认的安装位置,并且安装的是64位编译器,如果是32位则是ia32。
将如下语句加入~/.bashrc:
source /opt/intel/bin/iccvars.sh intel64
并保存退出
或者执行以下命令(只对当前用户生效):
$ echo "source /opt/intel/bin/iccvars.sh intel64" >> ~/.bashrc
你也可以以root权限将以上语句写到/etc/bash.bashrc文件中,使其对所有用户生效。
# echo "source /opt/intel/bin/iccvars.sh intel64" >> /etc/bash/bashrc
执行以下命令使bash路径生效:
$ source ~/.bashrc
或者:
# source /etc/bash.bashrc
测试一下是否成功:
输入命令有如下显示:
$ which icc /opt/intel/composer_xe_2013_sp1.0.080/bin/intel64/icc
说明配置成功。
使用
在使用icc编译安装开源软件时要注意,虽然icc对开源软件的支持越来越好,但也不是能完全兼容的,如果遇到有的软件不能直接使用icc进行编译,就可能要更改软件的源代码,比如现阶段linux内核就不能像gcc那样方便的编译,实际上内核早就可以通过一些设置后使用icc编译,这里不过多讨论。
在编译软件前运行如下命令,使用icc编译:
$ CC=icc $ CXX=icpc $ LD=xild $ AR=xiar
当然你也可以将这些变量作为全局变量,并添加到~/.bashrc文件中
$ echo "export CC=icc export CXX=icpc export LD=xild export AR=xiar" >> ~/.bashrc
这样就可以在编译安装软件的时候使用icc编译了。
使用GCC编译
如果icc出现问题,需要使用默认的GCC编译的时候
执行以下命令即可
$ export CC=gcc export CXX=g++ export LD=ld export AR=ar
注意事项
1.在设置icc的环境变量的时候,语句
source /opt/intel/bin/iccvars.sh intel64
可以写到/etc/bash.bashrc文件中,但不能写到/etc/profile文件中,写到后者中重启后不会生效。
2.CC=icc CXX=icpc等语句可以作为参数写到configure命令中。