1

Mingw-w64(ホストはUbuntu 12.04 64ビット)を使用してWindows用のFontconfigをクロスコンパイルしています。このプロセスは、次の手順で構成されています。

  1. ビルドの依存関係(FreetypeおよびeXpat)をコンパイルしてインストールします。

  2. 実行./configure

    ./configure --host=i686-win64-mingw32 --prefix=/usr/i686-w64-mingw32
    
  3. プロセスは./configureエラーなしで完了し、私は実行しますmake

    make
    
  4. 残念ながら、ここで問題が発生します。

    ...
      CCLD   libfontconfig.la
    i686-w64-mingw32-gcc: error: /usr/i686-w64-mingw32/lib/libexpat.lib:
        No such file or directory
    

ご覧のとおり、は(存在する)ではなく、(存在しない)奇妙な理由をlibtool探してます。libexpat.liblibexpat.a

何が起きてる?


編集:物事をより混乱させるために、これらの同じ手順はUbuntu 12.10(Quantal)で完全に機能します。12.04(正確)で失敗する理由がわかりません。上記のコマンドからの出力のAdiffは、上記のエラーを含む行まで違いはありません。


さらに編集:エラーを生成する実行中のrawコマンドを抽出しました:

/bin/bash ../libtool --silent --tag=CC --mode=link i686-w64-mingw32-gcc -O2 -ve
rsion-info 7:2:6 -no-undefined -export-symbols fontconfig.def -o libfontconfig.l
a -rpath /usr/i686-w64-mingw32/lib fcatomic.lo fcblanks.lo fccache.lo fccfg.lo 
fccharset.lo fcdbg.lo fcdefault.lo fcdir.lo fcformat.lo fcfreetype.lo fcfs.lo fc
init.lo fclang.lo fclist.lo fcmatch.lo fcmatrix.lo fcname.lo fcpat.lo fcserializ
e.lo fcstat.lo fcstr.lo fcxml.lo ftglue.lo -L/usr/i686-w64-mingw32/lib -lfreetyp
e -L/usr/i686-w64-mingw32/lib -lexpat

の呼び出しは次のようにi686-w64-mingw32-gccなります。

--------------------------------------------------------------------------------
i686-w64-mingw32-gcc -shared .libs/libfontconfig-1.dll.def .libs/fcatomic.o .lib
s/fcblanks.o .libs/fccache.o .libs/fccfg.o .libs/fccharset.o .libs/fcdbg.o .libs
/fcdefault.o .libs/fcdir.o .libs/fcformat.o .libs/fcfreetype.o .libs/fcfs.o .lib
s/fcinit.o .libs/fclang.o .libs/fclist.o .libs/fcmatch.o .libs/fcmatrix.o .libs/
fcname.o .libs/fcpat.o .libs/fcserialize.o .libs/fcstat.o .libs/fcstr.o .libs/fc
xml.o .libs/ftglue.o -L/usr/i686-w64-mingw32/lib /usr/i686-w64-mingw32/lib/libfr
eetype.dll.a /usr/i686-w64-mingw32/lib/libexpat.lib -O2 -o .libs/libfontconfig-1
.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libfontco
nfig.dll.a
4

1 に答える 1

1

したがって、問題は Fontconfig にあるのではなく、eXpat にあることがわかりました。eXpat のビルドに使用された環境には、Mingw-w64 の C++ コンパイラがインストールされておらず、何らかの理由libexpat.alibexpat.dll.a.

g++-mingw-w64g++-mingw-w64 をインストールパッケージをインストールしてビルドを再試行すると、成功しました。

ちなみに、Precise ビルドが失敗したのに Quantal ビルドが成功したのは、g++-mingw-w64がg++-mingw-w64 をインストールmingw-w64mingw-w64 をインストールの Precise への依存関係ではなく、 Quantal への依存関係になったためです。

于 2012-08-28T02:56:52.167 に答える