2014-03-28 56 views
2

我試圖將我的VS2012/MKL代碼分發到單獨的計算機。當在那臺電腦上我找不到vcomp.dll。我知道通過使用vcomp.dll,應用程序使用MS OpenMP而不是libiomp。VS2012 + MKL的應用程序分配

我試圖繞過在MS OpenMP的這種依賴,並通過論壇,搜索我做了以下修改:

  • 添加了\編譯\ LIB \ Intel64位目錄「VC++目錄」 - >參考目錄和圖書館目錄
  • 新增libiomp5md.lib到連接器 - >附加依賴
  • 新增vcomp.lib到連接器 - >忽略特定的默認庫
  • 添加了\編譯\ LIB \ Intel64位到我的連接器 - >附加庫目錄的好的措施。

每個更改仍會加載vcomp110.dll:嘗試在測試機器上運行時發生錯誤,並且開發計算機上的負載輸出列出vcomp110.dll。有沒有額外的步驟,我強迫VS使用libiomp而不是vcomp?

我無法提供可重複附加的代碼。

感謝

回答

5

從設在這裏Intel的文檔:http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/optaps/common/optaps_par_compat_libs_using.htm

使用英特爾的OpenMP *從Visual Studio庫*

當使用運行Windows操作系統的系統,可以進行某些修改 在Visual C++ Visual Studio 2005開發環境中允許您使用英特爾C++編譯器和Visual C++創建 應用程序,該應用程序使用英特爾OpenMP庫。

注:

微軟的Visual C++必須具有符號_OPENMP_NOFORCE_MANIFEST 定義,否則將包括清單的vcomp90的DLL。雖然 這可能不會在編譯系統上造成問題,但當應用程序移動到另一個系統時, 會導致問題,而該系統不會安裝此DLL。

設置項目屬性頁,表示英特爾的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>\IA32\LIB 

充分利用英特爾的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: 

PATH =%PATH%; \ IA32 \ BIN

加入英特爾的OpenMP運行時庫的名字連接器的選項和 排除默認微軟的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定義。

+1

偉大的第一個答案,noob! ;-) –