1

Google の Gumbo パーサーを Conan パッケージとしてラップしようとしています。Linux Mac と Windows のサポートにはほとんど成功していますが、Windows で共有ライブラリ (.dll + .lib) として作成 (および使用) する際に問題が発生しています。

私の現在の進行状況はこちらです。ソースを取得するときにコピーする CMakeLists.txt を提供するために、Gumbo の autoconf ビルド システムをバイパスすることにしました。このようにして、Windows も完全にサポートできるようにしたいと考えていました。

私は Visual C++ にはあまり詳しくありませんが、Gcc と Clang がすべてをエクスポートするのに対し、Visual C++ はデフォルトでシンボルをエクスポートしないという点で他のコンパイラとは異なることを理解しています。

これにより、一部のシナリオで Conan パッケージのビルドが失敗します。これは、共有モードでは .dll を生成するだけである (対応する .lib がない) ためです。

CMake の GENERATE_EXPORT_HEADER モジュールを使用してみましたが、エクスポートする必要があるメソッドで生成されたマクロを実際に使用する必要があるため、ほとんど役に立ちませんでした。しかし、フォークして適応させることなく、ライブラリをラップしようとしているだけです。

もう 1 つのオプションは、.def ファイルを使用することです。これはこの場合うまくいくかもしれませんが (エクスポートするシンボルはそれほど多くありません)、あまり役に立ちません (必要なすべてを実際にエクスポートしたかどうかをテストするのが難しく、維持するのが難しく、同じ問題を解決するのにあまり役に立ちません)。エクスポートするシンボルがはるかに多い他の状況)。

これを行うための推奨される方法はありますか?

4

0 に答える 0