问题标签 [intel-composer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 英特尔 C++ 链接器清单错误
我正在尝试构建项目,该项目以前为 MSVS 2013 C++ 编译器和英特尔 C++ 编译器 2015 设计。我创建了称为'Unicode ICC Release'
标准配置副本的新项目'Unicode Release'
配置。之后,我使用英特尔编译器更改了平台工具集。不幸的是,我收到此错误:
英特尔链接器的命令行如下所示:
而且Project.dll
真的不包含manifest!
有任何想法如何解决这种行为?
升级版:
MSVS 链接器诊断输出:
英特尔 xlink 输出:
fortran - 堆栈溢出有时会被编译器误解为访问冲突吗?
我有一个在 Windows 7 下使用 Intel fortran 编译器 2013 和 VS2010 编译的 fortran 代码,它开始给我未处理的异常,而没有显示代码崩溃的行。通常会出现这样的错误:
并且调用堆栈只有 dbghelp.dll 或 verify.dll 并且没有可用的源。我在 Cygwin 下移动了我的源文件,我用 gfortran 编译了所有可能的警告/错误标志(包括检查边界和隐式接口)并且根本没有警告并且程序运行顺利。所有接口都是明确的,因为我使用的是“CONTAINS”。因此,如果参数数量不匹配,调试器会捕获它。不存在未初始化的变量。我回到VS2010,我做了一个“干净的解决方案”,我重建了项目。代码开始在不同的 C 例程(我没有编写)中崩溃,例如:
或者
代码甚至没有到达可执行代码的第一行(没有到达断点)。
我开始评论我最近在过去几天添加的一些代码行,并且在运行线程时终于成功通过了前几行,它在子例程调用中崩溃并出现 stackoverflow 错误。这终于帮助我理解了这个问题。我有一堆被声明为 character*2560 的字符(在子程序和主代码中)。我用 character*256 替换了它们,它不再崩溃了。我重写了 character*2560 并在链接选项中添加了标志 /stack:2000000 ,现在一切运行顺利。我删除了我在那些代码行中添加的额外注释(在其中调用具有太多字符 * 2560 的错误子例程)并且一切运行顺利。我在 Cygwin 中用 gfortran 重新编译了所有东西,一切都很好。这是正常的吗?我现在安全了吗?最初堆栈溢出错误是否由于某种原因被错误地解释为访问冲突?那可能吗?
编辑:这是我在主程序中的错误声明(我在其他子程序中有类似的声明(但更短)):
fortran - Fortran 写入插入 2 个换行符 w
在我目前用 Fortran90 编写的一个简单测试例程中,字符串输出比屏幕长。当使用标准的 write( , ) 语句时,输出不是简单地添加一个新行并继续下一行,而是在继续输出之前添加第二个换行符。
示例代码:
英特尔 Visual Fortran Composer XE 2013 SP1 输出:
为什么会这样?这个额外的换行符是从哪里来的?
c++ - 英特尔编译器“运行时 CPU 调度”功能:在非 SSE2 处理器上损坏?
所以我们想使用启用运行时 CPU 调度的 Intel C 编译器(这是在 Windows 平台上)。我们使用选项/arch:IA32加上/QaxSSE2,但没有 /QxFoo选项。根据我们的理解,这应该生成一个在任何IA32 (x86) 处理器上运行的二进制文件,但仍然在实际支持 SSE2 指令集的处理器上使用 SSE2 优化的代码路径。
然而,测试表明在不支持 SSE2 的处理器(例如 Pentium III)上,二进制文件会因“非法指令”异常而崩溃!有趣的是,仅删除 /QaxSSE2并保留其他任何内容,生成的二进制文件在没有SSE2 支持的处理器上运行良好。
另一个有趣的观察是:使用/arch:IA32加上/QaxSSE2 和 /Ob0(禁用内联!)生成的二进制文件在没有SSE2 支持的处理器上也可以正常工作。
此时,无论/arch:IA32选项如何,似乎任一运行时 CPU 调度都会提高 SSE2 的“基本”代码路径的 CPU 要求。或者该函数内联和运行时 CPU 调度不能一起使用。但是我们在英特尔文档中找不到任何提及这一点。这是非常重要的信息,所以我们认为这需要在文档中提及!
任何人都可以确认观察或澄清发生了什么吗?
谢谢!
c++ - Visual Studio 中的 Intel 编译器没有找到 boost 库
我正在尝试在 vs2013 中安装 mlpack。msvc2013 不兼容,所以我使用的是 Intel C++ 编译器 XE 14.0。但是,英特尔编译器没有找到 boost 库。
仅使用 MSVC -
输出 -
使用 MSVC 和英特尔工具包 -
输出 -
为什么intel找不到?我使用 NuGet 包管理器安装了 boost 库。我应该为英特尔编译器使用其他一些增强库吗?
c++ - std::array,运算符重载不适用于 Linux 上的 Intel Compiler 15.0
在我当前的项目中,我重载了 std::array 运算符。这里是减号的一个例子:
用VS 2013编译我的项目,使用Intel编译器15.0时,没有问题,操作符工作正常。
但是当我在 linux 上使用 Intel 编译器 15.0 时,在两个 std::array 之间调用运算符时出现以下错误:
有什么特别需要我表演的吗?
c++ - 英特尔编译器 2018 错误:没有函数模板实例与指定类型匹配
我正在尝试新的英特尔编译器 2018 与我在这里拥有的所有其他编译器不同,这段代码失败了:
对于模板的每个专业化,它最终都会:
知道为什么吗?
c++ - 英特尔编译器 2018 语法更改
我正在评估 IC 2018,同时通常使用 IC 2016 & MSVC & CLANG。IC 2018 似乎无法应对几件事。
首先它不喜欢 _Pragma,例如:
我需要它来支持这样的多个编译器:
然后它也因关键字限制(以前由 IC 使用)而失败,但似乎 __restrict 可能有效。在数以千计的关键字之后,我放弃了。难道我做错了什么?主要是pragma,我将其中的很多用于各种优化规范。
c++ - 如何在英特尔 C++ 编译器中启用标准 C++ 14/17?
编程环境:
- 视觉工作室 2017(15.6.2)
- 英特尔 Parallel Studio Xe 2018 更新 1
- 视窗 10(6299.309)
我的问题是我不能包含最新的标头,例如std::variant
最新std::optional
的 Intel C++ 18 update 1 版本。
假设我包含std::variant
一个实例,即使添加-std=c++17
或/Qstd=c++17
编译器选项,编译器也会出现此错误: