为英特尔C++编辑器"GCC not found"设置环境变量时出现问题
Problems setting environment variables for Intel C++ Composer "GCC not found"
我刚刚在新安装的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.sh
intel64
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 定义C++新的环境变量并在 bat 文件中使用它
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- WSL 看不到环境变量
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 注册 TBB 的环境变量
- 如何设置Qt应用程序以使用类Unix系统的实际环境变量?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- 跨语言共享环境变量
- 什么是运行英特尔线程构建模块的 XCode 8 环境变量
- 在运行时将更改的环境变量应用于 QApplication
- 在C++程序中找不到环境变量 UID
- C++ 多线程中的锁和条件变量问题
- 为英特尔C++编辑器"GCC not found"设置环境变量时出现问题