3

emscripten を使用して、必要な C コードを移植しようとしていますlibm。通常、それは私のシステムのバージョンを使用し、リンクについて心配する必要はありませんが、手動で emscripten とリンクする必要があります。

どうすればリンクできlibmますか?

を使用してみましopenlibmたがmakeemcc(emscripten コンパイラ) を使用すると、openlibmまだシステム ヘッダーに依存しているため、すべての依存関係を見つけることができません。

GNUlibcソースも使用してみましたが、それらをナビゲートできませんMakefile

必要なのは、コンパイラでフラグemccを使用して JavaScript にコンパイルするときにリンクする、によって生成されたビットコードです。-lm

4

1 に答える 1

2

libmデフォルトでリンクされています。

emcc指定されている場合 ( as )、コンパイラはリンクできません。-lmこれには、明示的な検索パス ( with -L/path/) が必要なためです。独自のコンパイル済みビットコードを提供できない限り、上書きしてはならない内部実装がありますemcc

libmコンパイラは、最終的なコンパイルまで含まれないため、JavaScript にコンパイルするまで、未解決のライブラリに対して警告をスローします。中間ターゲットでのこれらのエラーは無視できますが、無視する必要があります。これは既知の問題です。

コンパイラで利用可能なライブラリは、https://github.com/kripken/emscripten/tree/master/system/includeにあります。具体的には、ヘッダーlibmに含まれています。明示的ではありませんが、FAQ で説明されています。muslmusl

于 2014-07-22T02:18:50.913 に答える