Используете Halide на окнах?

Мой вопрос: как заставить Halide работать в среде Windows? Мне не удалось найти никакой реальной документации для окон (я ожидаю, что это часть «шероховатостей»).

Моя ситуация: я пытаюсь использовать Halide в кросс-платформенной (Windows, Mac, Android) ситуации, и у меня много проблем с его работой в VS2013. При использовании готовых двоичных файлов все запускается и компилируется просто отлично, но когда я пытаюсь запустить программу, строка

Halide::Func gradient("gradient");

вызывает исключение std::bad_alloc в Halide.DLL. Я начинаю подозревать, что, возможно, двоичные файлы Halide для Windows были скомпилированы для использования с набором инструментов MinGW или каким-либо другим решением, отличным от msvc, и мои проблемы связаны с этим. Любые идеи?

Обновление: теперь я могу работать, не сталкиваясь с этой проблемой, но только в сборках Release. Определение _DEBUG и/или связывание с /MDd вызывает сбой.


person Walrus    schedule 10.12.2014    source источник


Ответы (2)


Я не знаю подробностей о двоичных файлах, предоставленных командой Halide, но ваша проблема может заключаться в том, что MSVC часто мешает смешивать отладочные и выпускные двоичные файлы, особенно если они используют STL (см. этот ответ)

Сборка LLVM/Clang и Halide из исходного кода проще, чем кажется, и позволит вам создавать двоичные файлы, подходящие к вашей среде сборки. Недавно я без проблем собрал LLVM 3.5/Clang и последнюю версию Halide с VS2012.

Сначала соберите LLVM в режиме отладки и выпуска (может быть, 1 или 2 часа каждый...). Затем запустите cmake для Halide один раз для отладки и один раз для выпуска с разными каталогами сборки.

person PhilippeC    schedule 11.12.2014

Мне удалось заставить Halide работать с новой подсистемой Windows в Linux без каких-либо проблем. Я использовал gcc4.8 для компиляции туториалов.

person Utkarsh Sinha    schedule 14.01.2017
comment
Но тогда вы не сможете связать полученные двоичные файлы с обычными приложениями Windows. - person Alex Reinking; 18.12.2018