2012-08-27 4 views
1

Mingw-w64 (호스트는 Ubuntu 12.04 64 비트)를 사용하여 Windows 용으로 Fontconfig을 크로스 컴파일하는 중입니다. 프로세스는 다음 단계로 구성됩니다.libtool이 .a 파일 대신 .lib 파일을 찾는 이유는 무엇입니까?

  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 
    

당신이 볼 수 있듯이 16,, libtool은 (는 않는이 존재) 대신 libexpat.a의 (가 존재하지 않는) 어떤 이상한 이유로 libexpat.lib를 찾고 있습니다.

여기 무슨 일 이니?


편집 :,이 같은 단계 우분투 12.10 (계량 적)에 완벽하게 작동 일을 더 복잡하게합니다. 나는 그것이 12.04 (정확함)에서 실패하는 이유를 전혀 모른다. 위의 명령에서 출력 된 diff은 위의 오류가있는 행까지는 차이가 없습니다.


는 는

는 또한 편집 :

/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 

답변

1

그래서 밝혀 문제는 Fontconfig를 사용하는 것이 아니라 eXpat을 사용하는 것이 었습니다. eXpat을 빌드하는 데 사용 된 환경에는 Mingw-w64의 C++ 컴파일러가 설치되어 있지 않아서 어떤 이유로 libexpat.dll.a 대신 libexpat.a이라는 파일이 생성되었습니다.

g++-mingw-w64 Install g++-mingw-w64 http://hostmar.co/software-small 패키지가 설치된 빌드를 다시 시도하면 성공했습니다.

정확한 빌드가 실패한 동안 Quantal 빌드가 성공한 이유는 g++-mingw-w64 Install g++-mingw-w64 http://hostmar.co/software-smallmingw-w64 Install mingw-w64 http://hostmar.co/software-small의 Precise에 종속적이지 않지만 Quantal에 종속되어 있기 때문입니다.