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

Build custom Intel MKL DLL which doesn't depend on MSVCR120.DLL

本文关键字:DLL 自定义 英特尔 MKL 构建 依赖于 MSVCR120      更新时间:2023-10-16

我正在使用以下命令构建自定义Intel Mkl Dll(2019 Update 2):

nmake libintel64 MKLROOT="C:Program Files (x86)IntelSWToolscompilers_and_librarieswindowsmkl" name=winintel64custom_mkl interface="lp64"

使用dumpbin我可以看到custom_mkl.dll取决于MSVCR120.DLLlibiomp5md.dll。第二个DLL似乎还可以,并且也必须重新分配。

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

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

我不能直接将/MT选项与上述命令一起使用。

我可以构建一个自定义的intel mkl dll,它不依赖于 MSVCR120.DLL使用以下命令,而添加参数 crt=libcmt.lib

nmake libintel64 MKLROOT="C:Program Files (x86)IntelSWToolscompilers_and_librarieswindowsmkl" name=winintel64custom_mkl interface="lp64" crt=libcmt.lib

以下答案对我有帮助:

VC lib中存在4个CRT链接库:

  • libcmt.lib:发行版构建(/mt)
  • 的静态CRT链接库
  • libcmtd.lib:debug build(/mtd)
  • 的静态CRT链接库
  • msvcrt.lib:crt(/md)的发行版dll版本的导入库
  • msvcrtd.lib:crt(/mdd)的调试DLL版本的导入库

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