我刚刚在Ubuntu13.10的新安装上安装了Intel C++ Composer XE 2013 SP1 for Linux,并按照即将开始的html文件设置环境变量。我试图完成以下工作:
“打开一个终端会话。运行编译器环境脚本compilervars.sh: /bin //bin/32,其中包含编译器/bin目录的目录结构,并且是以下体系结构参数之一: intel64:仅用于ia32 64体系结构的编译器和库:ia32-32体系结构的编译器和库只注意到是/opt/intel/的默认路径。”
当我执行命令"sudo ./pilervars.sh intel64“时
我得到了“警告:'gcc‘没有找到。/编译器vars.sh: 39: /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh:[[:未找到]”
然后,我使用命令"sudo apt install build“安装gcc,然后再次尝试执行上述命令,并得到了相同的错误消息。
发布于 2014-06-08 13:08:32
在标准安装dir = "/opt/intel“之后,在Debian 7.5 Wheezy上安装了IPP8.1 SP1.3.174版本:
> 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/ipp/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/pilervars.sh.让我们看看这个文件夹:
> ls -l ../composerxe
lrwxrwxrwx 1 root root 20 jun 8 04:06 ../composerxe -> composer_xe_2013_sp1
哦,天哪,又一个链接!所以“./composerxe/bin/pilervars.sh”是"/opt/intel/composer_xe_2013_sp1/bin/compilervars.sh".
gedit ./编译器vars.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
>
现在毫无怨言地被处决了。
发布于 2014-10-03 15:23:20
我在composer_xe_2015中遇到了一个类似的错误(Debian7.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
成功!
发布于 2014-01-08 05:06:55
我最近也面临着同样的问题。结果,其中一个"if“检查脚本正在传递,但是循环试图做的事情出了问题。因此,您可能需要检查compilervars.sh中的哪个"if“块会产生该错误。
在我的例子中,是"if [ -e $PROD_DIR/tbb/bin/tbbvars.sh ]"
。剧本在那里,但其他的tbb东西没有。
https://stackoverflow.com/questions/20985272
复制相似问题