从QEMU源码编译libqemu:求最新可行编译指南
从QEMU源码编译独立libqemu的可靠方案
问题背景
我在编译libqemu时遇到了不少麻烦:已经能正常编译完整QEMU,但对libqemu的链接环节摸不清头绪;找到的第三方编译项目都过时了,没法适配新版QEMU;官方文档也没给出详细的独立编译步骤。想找个长期兼容、不用花里胡哨技巧的方案,最好还能指定QEMU版本来缩短编译时间。
解决方案
其实QEMU原生就支持编译成共享库,步骤和编译完整QEMU差别不大,核心是配置阶段加对参数就行。下面是通用的编译脚本,基于官方流程,兼容性拉满:
#!/bin/bash # 可自定义参数 QEMU_VERSION="8.2.0" # 替换成你需要的QEMU版本 INSTALL_DIR="/usr/local/libqemu" # 库的安装路径 TARGET_ARCH="x86_64-softmmu" # 指定要编译的架构,按需修改 # 下载源码(本地已有可跳过这几步) wget https://download.qemu.org/qemu-${QEMU_VERSION}.tar.xz tar xvf qemu-${QEMU_VERSION}.tar.xz cd qemu-${QEMU_VERSION} # 配置编译选项,重点是启用共享库 ./configure \ --prefix=${INSTALL_DIR} \ --target-list=${TARGET_ARCH} \ --enable-shared \ --disable-user \ # 不需要用户态模拟就关闭,减少编译量 --disable-system # 只需要库不需要完整系统模拟就关闭,按需调整 # 并行编译+安装 make -j$(nproc) make install
关键细节说明
--enable-shared:这是生成libqemu的核心开关,没它就只会编译完整QEMU二进制- 指定
TARGET_ARCH:只编译你需要的架构,和你提到的指定版本缩短编译时间思路一致,能省不少时间 - 安装完成后,库文件在
${INSTALL_DIR}/lib,头文件在${INSTALL_DIR}/include - 自己的程序链接libqemu时,用类似这样的命令:
gcc your_code.c -o your_app -L${INSTALL_DIR}/lib -lqemu
验证编译结果
编译完成后,用下面的命令确认库是否生成:
ls ${INSTALL_DIR}/lib/libqemu*.so
内容的提问来源于stack exchange,提问作者ThomazPom
相关产品推荐
相关产品推荐

