2013-02-14 7 views
1

Mingw-w64의 32 비트 컴파일러로 Qt5를 크로스 컴파일하려고합니다. 호스트 플랫폼은 우분투 12.10 64 비트이고 대상 플랫폼은 32 비트 Windows입니다. OpenSSL 라이브러리를 교차 컴파일하고 교차 컴파일 된 바이너리/라이브러리 /를 설치하여 ~/i686-w64-mingw32에 포함 시켰습니다.Qt5 ./configure를 사용하여 교차 컴파일 된 OpenSSL 라이브러리를 찾는 방법은 무엇입니까?

Qt를 구성하려고 할 때 문제가 발생합니다. 나는 다음과 같은 명령을 사용하고 있습니다 :

PKG_CONFIG_PATH=~/i686-w64-mingw32/lib/pkgconfig ./configure -prefix \ 
    ~/i686-w64-mingw32 -opensource -confirm-license -release -nomake demos \ 
    -nomake examples -xplatform win32-g++ -device-option \ 
    CROSS_COMPILE=i686-w64-mingw32-

qmake 진은 호스트 플랫폼에 성공적으로 컴파일하고 사용 가능한 모든 기능의 목록은 표시됩니다

... 
ODBC support ........... plugin 
SQLite support ......... plugin (qt) 
OpenSSL support ........ no

여기 무슨 일이야? Qt처럼 OpenSSL include를 찾을 수없는 것 같습니다. 구성 과정에서 -v 플래그를 켜면 확인이됩니다. openssl/opensslv.h을 찾을 수 없다는 오류가 발생합니다.

그래서 내 다음 단계는 실제로 일하는 pkg-config 있음을 확인했다 :

PKG_CONFIG_PATH=~/i686-w64-mingw32/lib/pkgconfig pkg-config --libs openssl

그리고 것으로 나타나

-L/home/nathan/i686-w64-mingw32/lib -lssl -lcrypto

는 어떻게 내가에서 OpenSSL 라이브러리를 사용할 수있는 그 Qt는 확신 할 수 있습니까? -force-pkg-config 플래그를 시도했지만 아무런 차이가 없습니다.

답변

3

Freenode에서 #qt 채널을 묻는 질문을 마친 후 마침내 작동하는 해결책을 찾았습니다.

을 사용하려고 시도하는 대신에 컴파일러 옵션을 ./configure에 직접 전달해야했습니다. 명령은 다음과 같습니다.

./configure <...> -I~/i686-w64-mingw32/include

컴파일러는 헤더를 찾고 런타임 OpenSSL 지원을 사용할 수있었습니다.