現在、クロスプラットフォーム(linux、osx、w32)プロジェクトのW32ビルドプロセスをVisualStudioからmingwに切り替えています。MinGWツールでMSVCインポートライブラリを作成する
私たちが直面している問題の1つは、プロジェクトがダイナミックライブラリ(foo.dll
)を作成し、それに対して第三者のプロジェクトがリンクできることです。これがW32/MSVCで動作するには、インポートライブラリが必要です(foo.lib
)。今
、ライブラリをインポートするために必要なすべての情報を保持する.defファイルを作成することはとても簡単ですthe documentation次のドキュメントを使用するように教えて、foo.def
ファイルを使用するためには
gcc -shared -o foo.dll foo-*.o -Wl,--output-def,foo.def
をそれからfoo.lib
を構築するためのマイクロソフトLIBツール:
lib /machine:i386 /def:testdll.def
これは明らかに、ビルドコンピュータにインストールされてMSVC(のサブセット)を持っている私を必要とします。 しかし、私たちのLinuxシステム(おそらくCI上でさえ)全体をクロスコンパイルしたいのですが、MSVCのインストールはむしろ面倒です。
ファイルをfoo.lib
インポートライブラリに変換するネイティブMinGWの方法があるかどうかは分かりませんが、
は(我々は最終的には、唯一のMSVCのユーザーががインポートライブラリを必要とすることと、彼らが手元に準備lib
ツールを持っているだろうことを知っている。しかし、我々は常にfoo.def
への切り替え、foo.lib
ファイルを出荷したので、第三者がシステムを構築するのを邪魔します - 私たちが避けたいものです)。