构建不依赖于MSVCR120.DLL的自定义英特尔MKL DLL

时间:2019-03-14 16:12:07

标签: c++ visual-studio-2013 intel-mkl

我正在使用以下命令构建custom Intel MKL DLL (2019 Update 2)

nmake libintel64 MKLROOT="C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl" name=win\intel64\custom_mkl interface="lp64"

使用dumpbin可以看到custom_mkl.dll取决于MSVCR120.DLLlibiomp5md.dll。第二个dll似乎没问题,必须redistributed as well

是否可以构建不依赖于MSVCR120.DLL的自定义Intel MKL DLL?

我看到有一个crt = <c run-time library>参数,但我不知道这是否有帮助。

我不能直接在上面的命令中使用/MT选项。

1 个答案:

答案 0 :(得分:0)

我可以使用带有附加参数MSVCR120.DLL的以下命令来构建不依赖于crt=libcmt.lib的自定义Intel MKL DLL:

nmake libintel64 MKLROOT="C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl" name=win\intel64\custom_mkl interface="lp64" crt=libcmt.lib

以下答案对我有帮助:

  

在vc \ lib中存在4种版本的CRT链接库:

     
      
  • libcmt.lib:发布版本(/ MT)的静态CRT链接库
  •   
  • libcmtd.lib:用于调试版本(/ MTd)的静态CRT链接库
  •   
  • msvcrt.lib:CRT(/ MD)发行版DLL版本的导入库
  •   
  • msvcrtd.lib:CRT(/ MDd)的调试DLL版本的导入库
  •   

请参阅https://stackoverflow.com/a/3007915/7556646