1

我的问题:如何让 Halide 在 Windows 环境中工作?我一直找不到任何真正的 windows 文档(我期望的“粗糙边缘”的一部分)。

我的情况:我正在尝试在跨平台(windows、mac、android)情况下使用 Halide,但在 VS2013 中使用它时遇到了很多麻烦。使用预构建的二进制文件,一切运行和编译都很好,但是当我尝试实际运行程序时,该行

Halide::Func gradient("gradient");

在 Halide.DLL 中引发 std::bad_alloc 异常。我开始怀疑可能是 Halide windows 二进制文件是为与 MinGW 工具链或其他一些非 msvc 解决方案一起使用而编译的,而我的问题源于此。有任何想法吗?

更新:我现在可以运行而不会遇到这个问题,但只能在发布版本中运行。定义 _DEBUG 和/或与 /MDd 链接会导致崩溃。

4

2 回答 2

1

我不知道 Halide 团队提供的二进制文件的详细信息,但您的问题可能是 MSVC 经常阻止混合调试和发布二进制文件,特别是如果它们使用 STL(请参阅此答案

从源代码构建LLVM/Clang和 Halide 看起来更容易,并且允许您构建适合您的构建环境的二进制文件。我最近用 VS2012 构建了LLVM 3.5/Clang和最新的 Halide,没有任何问题。

首先在调试和发布中构建 LLVM(可能每个 1 到 2 小时......)。然后为 Halide 运行一次 cmake 用于调试,一次用于发布,使用不同的构建目录。

于 2014-12-11T21:15:19.120 回答
-1

我已经能够让 Halide 在 Linux 的新 Windows 子系统上工作,没有任何问题。我用来gcc4.8编译教程。

于 2017-01-14T15:34:49.543 回答