如何使用/ MT构建libtorch DLL?

时间:2020-10-11 12:36:28

标签: c++ windows libtorch

似乎用于构建libtorch tools\build_libtorch.py。对于构建/MT构建,此threadset BUILD_SHARED_LIBS=OFF说,并像这样开始构建过程:

set PYTORCH_ROOT=C:\pytorch

cd %PYTORCH_ROOT%
set BUILD_SHARED_LIBS=OFF
for /f "usebackq tokens=*" %i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version [15^,16^) -products * -latest -property installationPath`) do call "%i\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.27
set CL=/DFBGEMM_STATIC#1
python tools\build_libtorch.py

这似乎有linking issues,而且是静态的!我们应该如何使用此脚本与/MT构建共享库(DLL)?

更新

我不知道如何使用提供的脚本来构建共享库。

但是,使用从pointed out here的CMake生成Visual Studio解决方案的传统方法,可以构建带有/MT的发布模式DLL,而不会出现任何问题,而涉及到Debug构建,这些库就可以正常生成并且可以正常链接了,但是,在运行时会产生以下错误:

调试断言失败!程序: D:\ src \ arena \ libs \ libtorch \ debug \ c10.dll 文件:minkernel \ crts \ ucrt \ src \ appcrt \ heap \ debug_heap.cpp行:996

表达式:__acrt_first_block ==标头

有关程序如何导致断言失败的信息, 请参见有关断言的Visual C ++文档。 (按重试即可调试 应用程序)

这似乎是由a similar question here表示的/MTd开关引起的。因此,我不知道该怎么办,即使libtorch支持MTd。我在这里想念什么?

0 个答案:

没有答案