2017-11-28 3 views
0

現在、クロスプラットフォーム(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ファイルを出荷したので、第三者がシステムを構築するのを邪魔します - 私たちが避けたいものです)。

答えて

0
我々は

私はしかしPOLIBPelles C分布から、Linuxのに任意のMS LIBクローンポータブルを認識していないよ私たちのLinuxシステム上で全体のことをクロスコンパイルしたいと思います

は、小型、無料です自己完結型でMSツールと互換性があります。 kernel32.dll以外の依存関係はありませんので、Wineの下でも動作します。

関連する問題