Как собрать библиотеки DLL libtorch с помощью /MT?

Вроде для сборки используется 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

Кажется, это имеет проблемы со ссылками, а также они статичны! Как мы должны создавать общие библиотеки (DLL) с /MT с помощью этого скрипта?

Обновлять

Мне неизвестно, как можно собрать общие библиотеки с помощью предоставленного сценария.

Однако, используя старый способ создания решения Visual Studio из CMake как указанный здесь, библиотеки DLL режима выпуска с /MT могут быть собраны без каких-либо проблем, тогда как когда дело доходит до сборки отладки, библиотеки генерируются нормально и связан просто отлично, однако во время выполнения возникает следующая ошибка:

Ошибка утверждения отладки! Программа: D:\src\arena\libs\libtorch\debug\c10.dll Файл:minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp Строка:996

Выражение: __acrt_first_block == заголовок

Сведения о том, как ваша программа может привести к ошибке утверждения, см. в документации Visual C++ по утверждениям. (Нажмите «Повторить», чтобы отладить приложение)

Похоже, это вызвано переключателем /MTd, как указано в аналогичном вопросе здесь). Так что я точно не знаю, что делать, и даже если MTd поддерживается libtorch. Что мне здесь не хватает?


person Rika    schedule 11.10.2020    source источник