9

Visual C ++の他のライブラリで使用する静的ライブラリ(* .LIBファイル) GNUlibiconvをWindows上に構築したいと思います。私が使用している他のライブラリは、「マルチスレッドDLL」(/ MD)ランタイムオプションで構築されています。したがって、同じオプションでlibiconvをビルドする必要があります。

問題はlibiconvGNUビルドシステムを使用していて、/MDオプションでコンパイルしたいです。libiconvのソース構造はここで見ることができます:
http ://cvs.savannah.gnu.org/viewvc/libiconv/?root = libiconv

Zlatkovic氏はGNU libiconv、libxml2のWindowsポートを管理しています。

あなたはここでそれらを見ることができます:

ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip

彼のポートは使えません。libiconv-1.13の最新バージョンからビルドする必要があります。この男はどうやってそれを移植したのだろうか?これから*.libをビルドし、MSVCを使用してコンパイルする方法を教えてもらえますか?

編集:

実際、同じ設定でさらにいくつかのgnuライブラリを構築する必要があります。したがって、1つのライブラリのソリューションを取得した場合。私は他のすべての人にも同じことができます。

4

4 に答える 4

9

私は、PARKYounghoのHowto Build libiconv with Microsoft Visual Studio over the Code Projectが完全でクリーンであることに気づきました(VS2010およびGNU libiconv 1.14の場合)。

于 2012-04-17T14:54:28.550 に答える
3

あなたの答えに少し追加。同じ問題が発生し、MinGW+MSYSソリューションが完璧であることがわかりました。

ただし、結果のdllとリンクできるようにするには、もう少し進んで.libファイルも生成する必要がありました。

これは私が見つけたものです:

  • dumpbin(Visual Studioツール)を使用してdllから.defファイルを生成します。

  • libプログラム(Visual Studioツールも)を使用して.defから.libファイルを生成します

これにより、必要に応じていくつかのリンクフラグを指定できます。ここに詳述されているすべて(私はこのメソッドの作成者ではありません): http ://wiki.videolan.org/GenerateLibFromDll

また、このlib/dllカップルはMDライブラリとMDdライブラリの両方にリンクできることにも気づきました。

それが私を助けたように、それがこの投稿を見つける人々を助けることができることを願っています。

-デビッド

于 2011-01-03T16:43:46.257 に答える
2

私はOPです。MSYSは私が探していたものとまったく同じです。

シェルを含むMinGWとMSYSをインストールするだけで、後で構成sh.exeおよびmake.exe生成Makefileでき、make.exeを使用して実行できます。

それと同じくらい簡単です。

于 2010-05-06T04:13:01.707 に答える
1

必要に応じて、環境にMsysを使用してMinGWを使用してコンパイルします。MinGWの.aファイルは、メーリングリストによると、明らかに.libファイルと同じ形式です(名前を変更するだけです)。iconv静的ライブラリがMinGWダウンロード/ファイルシステムにすでに含まれているかどうかを最初に確認することをお勧めします。

編集:それはmsys(C:\ msys \ 1.0 \ lib)にあります:

  • libiconv.a
  • libiconv.dll.a
  • libiconv.la

そしてさらに

  • libiconv-2.dll(C:\ msys \ 1.0 \ local \ bin内)

編集:それはここにありますか、あなたが必要とするlibiconvですか?これらのバージョンにはMSVCmakefileがあるようです:) http://www.opensource.apple.com/source/libiconv/

于 2010-04-28T22:03:38.927 に答える