64ビットmingw環境でlibiconvを構築する

64ビットmingw環境でlibiconvを構築する

Windows PCで小規模64ビットGNU環境を構成しようとしています。私は64ビットmingw環境を構築し、次に必要なライブラリを構築し続けています。

libiconvをビルドするとき、私はこれに従おうとしますガイドライン--host、これはciptを設定するためのパラメータを提供して設定するのと同じです。ただし、次のエラーによりビルドが失敗します。

c:/mingw_mine/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-min gw32/bin/ld.exe: i386入力ファイル '.libs/libiconv.res.o' のアーキテクチャは、i386:x86-64 出力と互換性がありません。

何が間違っていますか?

いくつかの必要な詳細:私はプリコンパイルされた32ビットmsysをシェルとして使用しています。これにはプログラムの数が含まれますmake。使用エラーを防ぐために、まずPATH、C_INCLUDE_PATH、およびCPLUS_INCLUDE_PATHに必要なパスを追加し、次のコマンドを使用して構成を実行しました。installgccgcc

$../src/configure --prefix=/c/temp/gcc/dest --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 CPPFLAGS="-Wall -I/c/mingw_mine/include "LDFLAGS="-L/c/mingw_mine/lib"

私が知っている限り、設定スクリプトは私が望むコンパイラを完全に正しく検出し、設定は問題なく完了します。 i386バイナリはどこから来たのですか?構成がアーキテクチャuname(32ビットmsysで)を検出しても、/bin/unameホストが明示的に定義されているのはなぜ重要ですか?

答え1

調査後、問題を解決しました。段階的に進む:

  1. windresプログラムの出力に誤ったバイナリファイルが表示されます。確認の結果、32ビットmsys環境の結果がwhich出ました。/bin/windres
  2. 私は64ビットmingw用のbintoolsをコンパイルしたので、/mingw/binフォルダに64ビットwindresがあります。ただし、ビルドプロセス中は使用されません。
  3. 構成プロセスがどのように進行したかを確認した後、次の行が見つかりました。

x86_64-w64-mingw32-windresをチェックしてください...

ウィンドレスを確認してください...ウィンドレス

  1. x86_64-w64-mingw32-windresという名前のmsys環境ファイルを作成し、次の内容で/mingwフォルダに配置しました。

    #!/bin/sh script="$0" basename="$(dirname $script)" $basename/windres "$@"

再構成後、ビルドがスムーズに行われました。

関連情報