为英特尔C++编辑器"GCC not found"设置环境变量时出现问题

Problems setting environment variables for Intel C++ Composer "GCC not found"

本文关键字:环境变量 问题 设置 not C++ 英特尔 编辑器 GCC found      更新时间:2023-10-16

我刚刚在新安装的Ubuntu 13.10上安装了Intel®C++Composer XE 2013 SP1 for Linux,并按照Getting Started html文件设置环境变量。我尝试完成以下内容:

"打开终端会话。运行编译器环境脚本compilervars.sh:source/bin/compilervars.sh其中是包含编译器/bin目录的目录结构,是以下体系结构参数之一:intel64:仅适用于英特尔®;64体系结构的编译器和库ia32:仅限IA-32体系结构的编译器和库注意的默认路径是/opt/intel/。">

当我执行命令"sudo./compilervars.sh intel64"时

我得到"警告:未找到'gcc'./compilervars.sh:39:/opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh:[:未找到">

然后,我使用命令"sudo apt-get-install-build-ential"安装gcc,然后再次尝试执行上面的操作,得到了相同的错误消息。

使用标准安装dir="/opt/intel",IPP 8.1 SP1.3.174版本安装在Debian 7.5 Wheezy上:

> cd /opt/intel/bin
> ./compilervars.sh intel64
./compilervars.sh: 40: /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh: [[: not found

这意味着:在/opt/intel/composer_xe_2013_sp1/ip/bin/ippvars.sh的第40行执行compilervars.sh时出错

简要解释:(如果要直接进入解决方案,请跳到"解决方案"部分)

让我们看看脚本

> ls -l
total 0
lrwxrwxrwx 1 root root 34 jun  8 04:06 compilervars.csh -> ../composerxe/bin/compilervars.csh
lrwxrwxrwx 1 root root 33 jun  8 04:06 compilervars.sh -> ../composerxe/bin/compilervars.sh

compilersvars.sh指向/composerxe/bin/compilervars.sh…让我们看看这个文件夹:

> ls -l ../composerxe
lrwxrwxrwx 1 root root 20 jun  8 04:06 ../composerxe -> composer_xe_2013_sp1

哦,天哪,又是一个链接!因此"../composerxe/bin/compilervars.sh"是"/opt/intel/composer_xe_2013_sp1/bin/compilervars.sh"。

gedit/compilervars.sh

在该脚本中,PROD_DIR=/opt/intel/composer_xe_2013_sp1告诉我们使用的编译器版本。脚本要求存在一些*.sh文件,如果是这样,则执行它们。这就是/opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh的情况。

解决方案:

> gedit /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh

转到第40行:

if [[ "$1" != "ia32" && "$1" != "intel64" && "$1" != "ia32_intel64" ]]; then

将该行替换为:

if [ "$1" != "ia32" ] && [ "$1" != "intel64" ] && [ "$1" != "ia32_intel64" ]; then

保存并重新执行脚本:

> ./compilervars.sh intel64
>

现在毫无怨言地执行了。

我在composer_xe_2015(Debian 7.6)中遇到了类似的错误:

$ sudo ./compilervars.sh intel64 
./compilervars.sh: 13: /opt/intel/composer_xe_2015/ipp/bin/ippvars.sh: [[: not found

正如bull所指出的,这个问题涉及符号链接。尽管脚本可以更改,但一个更简单的解决方案似乎是从命令中省略./

$ sudo bash compilervars.sh intel64

成功!

我最近也遇到了同样的问题。发现脚本执行的一个"if"检查正在通过,但循环试图执行的操作出现了问题。因此,您可能需要检查compilervars.sh中的哪个"if"块会出现该错误。

就我而言,它是"if [ -e $PROD_DIR/tbb/bin/tbbvars.sh ]"。剧本在那里,但其他tbb的东西不在。

我也有tbbvars.sh的问题。出于某种原因,没有用户组有执行脚本的权限,所以我只使用chmod 755 tbbvars.sh,然后脚本执行时没有抱怨。我也有这个[[:没有发现ippvars.sh的问题,所以我试着让它在下一步工作。

好的,对于ippvars.sh脚本,将第39行完全替换为这个(间距很重要)

if [ "$1" != "ia32" ] && [ "$1" != "intel64" ];   then

我读过其他人说这是一个问题,因为shell不具备bash的所有功能,不确定,但这个修复程序再次使其工作,至少在没有脚本提出任何投诉的情况下。

今天,我在尝试安装适用于Linux的英特尔®;C++Composer XE 2013 SP1时遇到了此错误。将shebang从#更改为/bin/sh到#/compilevars.sh脚本中的bin/bash帮了我一把。

我运行xubuntu 12.04 64位。

当我执行/opt/intel/bin/compilervars.sh时,我得到错误

/compilervars.sh:40:/opt/intel/composer_xe_2013_sp1/ip/bin/ippvars.sh:[:未找到">

我已经检查了以前的解决方案,上面的解决方案都不起作用。

最后我试了源CCD_ 4而不改变任何东西和砰的一声。

我遇到了icc。然后编辑.bashrc并在末尾添加以下行源/opt/intel/bin/compilervars.shintel64