Boehm ガベージ コレクター ライブラリを参照するfoo.c
という行を含むというファイルがあります。#include <gc.h>
emscripten のドキュメントには、外部ライブラリを最初にビットコードにコンパイルする必要があると書かれています。したがって、 と の両方をコンパイル12.c
して、次のコマンドgc.c
を使用してビットコードに変換し、実行しました。clang
emcc 12.c gc.c
これは警告付きでコンパイルされます:
warning: incorrect target triple 'x86_64-apple-macosx10.11.0' (did you use emcc/em++ on all source files and not clang directly?)
warning: unresolved symbol: llvm_objectsize_i64_p0i8
ランニングa.out.js
は私に与えますmissing function: llvm_objectsize_i64_p0i8
。
これは、clang を直接使用しないことに関する警告に関連していると思います。
emcc
ただし、それを介してビットコードにコンパイルしようとすると、回避策が得られ、
WARNING:root:emcc: cannot find library "gc"
fatal error: 'gc/gc.h' file not found
私は何を間違っていますか?Emscripten はemcc
、コンパイルに使用する必要があると言っているようですlibgc
が、ドキュメントには、最初にビットコードにコンパイルする必要があると書かれています。