似乎用于构建libtorch tools\build_libtorch.py
。对于构建/MT
构建,此thread对set 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
。我在这里想念什么?