Jak krzyżowo zbudować najnowszą stabilną wersję Qemu za pomocą x86_64-w64-mingw32

7

Zainstalowałem mingw i sklonowałem „najnowszą stabilną” gałąź QEMU przy pomocy

sudo apt-get install -y mingw-w64
cd ~/
git clone -b stable-2.2 git://git.qemu.org/qemu.git
cd ~/qemu

Następnie z @ http://wiki.qemu.org/Hosts/W32#Building_QEMU_for_W64 próbowałem:

./configure --cross-prefix=amd64-mingw32msvc-

a teraz dostaję:

ERROR: "amd64-mingw32msvc-gcc" either does not exist or does not work

Aktualizacja:

~/Scripts/qemu$ ./configure --cross-prefix=x86_64-w64-mingw32-
ERROR: pkg-config binary 'x86_64-w64-mingw32-pkg-config' not found

Druga aktualizacja:

Naprawiono poprzedni problem z

sudo link /usr/bin/pkg-config /usr/bin/x86_64-w64-mingw32-pkg-config
sudo apt-get --no-install-recommends -y build-dep qemu

ale teraz dostaję:

owner@K53TA:~/qemu$ ./configure --cross-prefix=x86_64-w64-mingw32-

ERROR: zlib check failed
       Make sure to have the zlib libs and headers installed.

ale zlib1g-devjest ZAINSTALOWANY

GlassGhost
źródło
2 pytania: 1. Czy próbujesz zbudować Qemu dla Windows? 2. Czy zainstalowałeś kompilator mingw?
eyoung100,
@ eyoung100 tak i tak.
GlassGhost,
Dlaczego nie rozważyć użycia WinQemu ? Co robisz, zrobili już za pomocą VC2008. Jeśli nalegasz na kompilację krzyżową, jeszcze 2 pytania: 1. Czy host kompilacji jest 64-bitowy? 2. Czy system Windows jest zainstalowany w wersji 32-bitowej?
eyoung100,
1
@ eyoung100 dlaczego miałbym używać VC2008, skoro mogę używać Ubuntu z VM? Jestem zainteresowany jego kompilacją, a nie tylko pobieraniem.
GlassGhost,

Odpowiedzi:

1

Ostrzeżenie: ta odpowiedź jest w toku

Mimo że poprosiłem OP o rozważenie użycia WinQemu , oficjalnie piszę odpowiedź dla tych, którzy zdecydują się „zrobić to od zera”. Zakładając, że host kompilacji jest 64-bitowy, a system Windows jest 32-bitowy:

  1. Musimy usunąć nieudaną instalację OP narzędzi do kompilacji krzyżowej, używając:
    sudo apt-get --purge remove mingw-w64
    rm -vR ~/qemu
  2. Teraz musimy zdecydować o naszej architekturze. Jeśli host kompilacji jest 64-bitowy, a system Windows jest 32-bitowy, użyj :
    sudo apt-get install gcc-mingw32 mingw32-binutils mingw32-runtime
  3. Jeśli host kompilacji jest 64-bitowy, a system Windows jest 64-bitowy, użyj :
    sudo apt-get install gcc-mingw32 mingw32-binutils mingw-w64
  4. Opcjonalnie: Dodaj obsługę SDL przez:
    wget http://www.libsdl.org/release/SDL-devel-1.2.15-mingw32.tar.gz
  5. Teraz możemy pobrać źródło tarballa i rozpakować go. Możesz także użyć Git Clone tak jak OP, ale musisz tylko wybrać jedną opcję: sudo apt-get install wget && wget http://wiki.qemu-project.org/download/qemu-2.2.0.tar.bz2 && tar -xvjpf qemu-2.2.0.tar.bz2 && cd qemu-2.2.0
  6. Teraz konfigurujemy kompilację. Jeśli host kompilacji jest 64-bitowy, a system Windows jest 32-bitowy, użyj : configure --cross-prefix=i586-mingw32msvc- [--extra-cflags=-mthreads]
  7. Jeśli host kompilacji jest 64-bitowy, a system Windows jest 64-bitowy, użyj : configure --cross-prefix=amd64-mingw32msvc-

Uwaga : Jeśli Faza Konfiguracji nie powiedzie się, musisz naprawić błędy konfiguracji, jak wspominał PO. W tym momencie błąd konfiguracji jest najprawdopodobniej spowodowany brakującymi bibliotekami

eyoung100
źródło
Pod Ubuntu 14.04 nie ma pakietu gcc-mingw32. Próbowałem z mingw32 i gcc-mingw-w64-i686, ale po skonfigurowaniu otrzymałem: BŁĄD: pkg-config binarny „i586-mingw32msvc-pkg-config” nie znaleziono
tweetysat
dla Ubuntu 14.04 użyj polecenia „sudo apt-get install mingw32 mingw32-binutils mingw32-runtime”
snapo