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

问题描述 投票:0回答:1

我正在使用以下命令构建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的自定义英特尔MKL DLL?

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

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

c++ visual-studio-2013 intel-mkl
1个回答
0
投票

我可以使用以下命令和附加参数MSVCR120.DLL构建一个不依赖于crt=libcmt.lib的自定义英特尔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:发布版本的静态CRT链接库(/ MT)
  • libcmtd.lib:用于调试版本的静态CRT链接库(/ MTd)
  • msvcrt.lib:CRT版本DLL版本的导入库(/ MD)
  • msvcrtd.lib:CRT调试DLL版本的导入库(/ MDd)

https://stackoverflow.com/a/3007915/7556646

© www.soinside.com 2019 - 2024. All rights reserved.