应用程序分发VS2012+MKL

Application Distribution with VS2012+MKL

本文关键字:VS2012+MKL 应用程序      更新时间:2023-10-16

我正试图将我的VS2012/MKL代码分发到单独的计算机。当在那台计算机上,我得到一个vcomp.dll没有找到。我知道通过使用vcomp.dll,应用程序正在使用MS OpenMP而不是libiomp。

我正试图绕过对MS OpenMP的依赖,并通过论坛搜索我做了以下更改:

  • 将compilerlibintel64目录添加到" vc++目录"->参考目录和库目录
  • libiomp5md补充道。lib到链接器->附加依赖项
  • vcomp补充道。忽略特定的默认库
  • 在我的链接器中添加了compilerlibintel64 ->额外的库目录。

每次修改仍然加载vcomp110.dll:当尝试在测试机上运行时给出一个错误,并且在开发机上的加载输出列出vcomp110.dll。是否有额外的步骤,我错过了强制VS使用libiomp而不是vcomp?

我不能提供可复制的代码来附加。

谢谢

来自位于这里的英特尔文档:http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/optaps/common/optaps_par_compat_libs_using.htm

在Visual Studio中使用Intel OpenMP*库*

当使用运行Windows操作系统的系统时,您可以进行某些更改在Visual c++ Visual Studio 2005的开发环境下允许您可以使用Intel c++编译器和Visual c++来创建使用英特尔OpenMP库的应用程序。

注意:

Microsoft Visual c++必须有符号_OPENMP_NOFORCE_MANIFEST定义,否则它将包含vcomp90 dll的清单。而这看起来可能不会在构建系统上引起问题,但它会当应用程序移动到另一个系统时,会导致问题没有安装此DLL。

设置项目属性页以指示Intel OpenMP运行时图书馆的位置:

Open the project's property pages in from the main menu: Project > Properties (or right click the Project name and select Properties) .
Select Configuration Properties > Linker > General > Additional Library Directories
Enter the path to the Intel compiler libraries. For example, for an IA-32 architecture system, enter:
<Intel_compiler_installation_path>IA32LIB

使Intel OpenMP动态运行库在运行时可访问;必须指定相应的路径:

Open the project's property pages in from the main menu: Project > Properties (or right click the Project name and select Properties).
Select Configuration Properties > Debugging > Environment
Enter the path to the Intel compiler libraries. For example, for an IA-32 architecture system, enter:
= % %路径;

路径 IA32 Bin

将Intel OpenMP运行时库名称添加到链接器选项和排除默认的Microsoft OpenMP运行时库:

Open the project's property pages in from the main menu: Project > Properties (or right click the Project name and select Properties).
Select Configuration Properties > Linker > Command Line > Additional Options
Enter the OpenMP library name and the Visual C++ linker option, /nodefaultlib.

我猜你错过的东西是需要有_OPENMP_NOFORCE_MANIFEST定义