在函数

时间:2016-09-05 12:26:23

标签: halide

我试图以AOT形式实现我的模板匹配(使用绘图),当我通过包含从另一个项目编译的单独静态库来测试不同方法是否工作时,我遇到了构建错误,如:< / p>

  

严重级代码描述项目文件行抑制状态   错误LNK2005 _ZN6Halide7Runtime8Internal13custom_mallocE已在template_matching_ccorr.lib中定义(template_matching_ccorr.lib.obj)Halide模板匹配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但它并没有真正起作用。

1 个答案:

答案 0 :(得分:1)

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

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