Сборка Qemu(эмуляция ARM) для Windows64 на Linux64
Я пытаюсь запустить эмуляцию ARM VExpress в QEmu. Моя Конечная платформа - Windows64. И моя система сборки работает под управлением Linux64. Я использую QEmu версии 2.3.0 и x86_64-w64-mingw32 toolchain.
Во время сборки я столкнулся с множеством проблем, но некоторые решил самостоятельно. Одной из них была цепочка инструментов при установке, в которой нет библиотеки glib, и мне пришлось импортировать одну из них, которую я получил при поиске в Интернете. Поэтому после добавления некоторых файлов pkg-config и копирования этого набора glib в папку lib я получил все необходимое для начала компиляции.
Как же теперь я сталкиваюсь с новой проблемой. Он проверяет наличие свободы, в то время как у цепочки инструментов нет свободы. Я получил версию librt и добавил, что в папку lib toolchain и компиляция выдает ошибку ниже. Любая помощь на любых этапах приветствуется.
make all-recursive
Making all in pixman
make[3]: Nothing to be done for 'all'.
Making all in demos
make[3]: Nothing to be done for 'all'.
Making all in test
make[3]: Nothing to be done for 'all'.
CHK version_gen.h
LINK qemu-ga.exe
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(libglib_2_0_la-gutils.o):(.text+0x505): undefined reference to `__imp_CoTaskMemFree'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(libglib_2_0_la-gutils.o):(.text+0x613): undefined reference to `__imp_CoTaskMemFree'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(libglib_2_0_la-gutils.o):(.text+0x6a6): undefined reference to `__imp_CoTaskMemFree'
/usr/bin/x86_64-w64-mingw32-ld: /home/user/Downloads/mingw/glib/lib/libglib-2.0.a(libglib_2_0_la-gutils.o): bad reloc address 0x0 in section `.pdata'
collect2: error: ld returned 1 exit status
Makefile:288: recipe for target 'qemu-ga.exe' failed
make: *** [qemu-ga.exe] Error 1
Изменить 1: Исправлена вышеуказанная проблема, добавив -lole32 в файл config-host.mak в заголовках LIBS и LIBS_QGA.
Но теперь столкнулись с проблемой ниже
LINK qemu-ga.exe
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x14d8): undefined reference to `libintl_sprintf'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x1507): undefined reference to `libintl_sprintf'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x1536): undefined reference to `libintl_sprintf'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x1565): undefined reference to `libintl_sprintf'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x1594): undefined reference to `libintl_sprintf'
/home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o):(.text+0x15f2): more undefined references to `libintl_sprintf' follow
/usr/bin/x86_64-w64-mingw32-ld: /home/user/Downloads/mingw/glib/lib/libglib-2.0.a(giowin32.o): bad reloc address 0x0 in section `.data'
collect2: error: ld returned 1 exit status
Makefile:288: recipe for target 'qemu-ga.exe' failed
make: *** [qemu-ga.exe] Error 1
Исходя из этого.
Я скачал и скомпилировал libintl из пакета gettext и вручную установил его в набор инструментов. Сделал то же самое для libiconv и libffi.
Прямо сейчас я получаю следующую ошибку.
LINK arm-softmmu/qemu-system-arm.exe
numa.o: In function `numa_node_parse':
/home/user/qemu-2.3.0/numa.c:107: undefined reference to `__imp_g_ascii_table'
hw/arm/boot.o: In function `load_image_to_fw_cfg':
/home/user/qemu-2.3.0/hw/arm/boot.c:546: undefined reference to `g_file_get_contents'
../vl.o: In function `set_memory_options':
/home/user/qemu-2.3.0/vl.c:2666: undefined reference to `__imp_g_ascii_table'
../hw/core/loader.o: In function `load_image_gzipped_buffer':
/home/user/qemu-2.3.0/hw/core/loader.c:629: undefined reference to `g_file_get_contents'
../hw/nvram/fw_cfg.o: In function `read_splashfile':
/home/user/qemu-2.3.0/hw/nvram/fw_cfg.c:97: undefined reference to `g_file_get_contents'
collect2: error: ld returned 1 exit status
Makefile:182: recipe for target 'qemu-system-arm.exe' failed
make[1]: *** [qemu-system-arm.exe] Error 1
Makefile:173: recipe for target 'subdir-arm-softmmu' failed
make: *** [subdir-arm-softmmu] Error 2
Попытка скомпилировать библиотеку glib, чтобы попытаться решить эту проблему. Спасибо за любую помощь.