1

テンプレート マッチング (描画付き) を AOT 形式で実装しようとしていますが、別のプロジェクトからコンパイルされた個別の静的ライブラリを含めることでさまざまな方法が機能するかどうかをテストしていたときに、次のようなビルド エラーが発生しました。

重大度コード 説明 Project File Line Suppression State Error LNK2005 _ZN6Halide7Runtime8Internal13custom_mallocE already defined in template_matching_ccorr.lib(template_matching_ccorr.lib.obj) Halide Template Matching v2 AOT Run 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コンパイルコードで使用できるreactと同様の機能がありますか、それとも2つの異なるAOT機能を作成する必要がありますか(最初に複数の機能を呼び出すことができると仮定します)

EDIT:クイックフィックスは /FORCE:MULTIPLE をリンカーのコマンドラインに追加しているようです

EDIT2:追加してコンパイルすることができました

Target target = get_host_target();

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

複数の定義を解決するものを除いて、ほとんどのパイプラインに。HalideRuntime.h をインクルードすることもできたのに、なぜランタイムに 1 つのパイプラインを持たなければならないのか疑問に思っていますが、実際には機能しません。

4

1 に答える 1

1

/FORCE:MULTIPLE が機能します。no_runtime ターゲット機能の賢明な使用も同様です。詳細については、 http://halide-lang.org/tutorials/tutorial_lesson_15_generators_usage.htmlを参照してください。

ランタイムなしで各パイプラインをコンパイルしてから、それらをスタンドアロン ランタイムと一緒にリンクできます。または、パイプラインの 1 つをランタイムでコンパイルすることもできます。

于 2016-09-05T15:28:42.127 に答える