私は、Windows上でカスタムの.dllと.libを必要とするHaskellライブラリパッケージに取り組んでいます。これは、いくつかのOS APIと話すためです。 .libはextra-libraries
フィールドでライブラリにリンクされ、DLLはcabalパッケージディレクトリにdata-files
でインストールされます。ライブラリーをコンパイルするために必要な静的.libもライブラリー・ユーザーには必要ですか?
私のパッケージ(build-depends
フィールド)を使用するテスト実行ファイルを作成すると何らかの理由で(私は何らかの手段でリンクするのは専門家ではありませんが、これは奇妙に思えます) libはライブラリのコンパイルに使用されます。ライブラリ関数を呼び出すだけで、.libが公開するものではありません。明らかに、実行時に.dllにアクセスする必要がありますが、それは予想されます。 .libも同様に必要とするのは奇妙なようです。
私のライブラリのためにCabal/GHCによって生成された.aファイルに既に.libがリンクされていることが予想されます。これは当てはまりませんか?それがあれば誰かがその理由を説明できるのだろうか?
バニラライブラリに 'ar'の代わりに' ld -r'を使用する方法はありますか? 'ld-options:-r'を追加しようとしましたが、何もしないようです(おそらく' ld'が使用されていないためでしょうか?) –
@TomSavageいいえ、私はそれは不可能だと思います。しかし私はカバールの専門家ではない。 – Yuras