我正在使用以下命令构建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.DLL
和libiomp5md.dll
。第二个dll似乎没问题,并且必须使用redistributed as well。
是否有可能构建一个不依赖于MSVCR120.DLL
的自定义英特尔MKL DLL?
我看到有一个crt = <c run-time library>
参数,但我不知道这是否有帮助。
我不能直接使用上面命令的/MT
选项。
我可以使用以下命令和附加参数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)