1

我正在尝试以 AOT 形式实现我的模板匹配(带绘图),当我通过包含从另一个项目编译的单独静态库来测试不同的方法是否有效时,我得到了如下构建错误:

严重性代码 描述 项目文件行抑制状态错误 LNK2005 _ZN6Halide7Runtime8Internal13custom_mallocE 已在 template_matching_ccorr.lib(template_matching_ccorr.lib.obj) 卤化物模板匹配 v2 AOT 中定义 运行 c:\Users\Admin\documents\visual studio 2015\Projects\Halide Template Matchign v2 AOT Run\Halide Template Matchign v2 AOT Run\template_matching_sqdiff.lib(template_matching_sqdiff.lib.obj) 1

有没有办法能够包含多个库并能够运行不同的功能?

还有一个类似的函数可以在 AOT 编译代码中使用,或者需要我创建两个不同的 AOT 函数(假设我可以调用多个函数开始)

编辑:快速修复似乎是将 /FORCE:MULTIPLE 添加到链接器的命令行

EDIT2:设法让它通过添加来编译

Target target = get_host_target();

target.set_feature(Target::NoRuntime, true);

除了解决多个定义的管道之外的大多数管道。现在我想知道为什么我必须在运行时使用一个管道,即使我可以只包含 HalideRuntime.h 但它并没有真正起作用。

4

1 回答 1

1

/FORCE:MULTIPLE 作品。明智地使用 no_runtime 目标功能也是如此。有关详细信息,请参阅http://halide-lang.org/tutorials/tutorial_lesson_15_generators_usage.html

您可以在没有运行时的情况下编译每个管道,然后将它们与独立的运行时链接在一起。或者您可以只使用运行时编译您的管道之一。

于 2016-09-05T15:28:42.127 回答