configure交叉编译

交叉编译某个应用程序时,通常需要 ./configure 来生成对应的 Makefile
./configure 最关键的三个选项是:

--host=HOST
指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

--build=BUILD
指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.

--target=GARGET
指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值. 

一般而言,我们只要指定 --host 就可以了

记住:--host 指定的是交叉编译工具链的前缀

转载自:http://blog.chinaunix.net/uid-24148050-id-2213969.html

### 配置 QEMU 进行交叉编译 为了使 QEMU 支持跨平台环境下的程序运行,通常需要通过特定选项来模拟目标架构的行为并加载相应的库文件。以下是关于如何配置 QEMU 的详细说明: #### 使用 `-L` 参数指定动态链接器路径 当使用 QEMU 模拟不同架构时,可以通过 `-L` 参数告诉动态链接器在哪里查找共享库文件[^1]。例如,在 x86 架构下启动 QEMU 并执行 `/bin/ls` 命令可以这样操作: ```bash qemu-i386 -L / qemu-i386 -L / /bin/ls ``` 对于非 x86 CPU,可能还需要下载适合的目标系统的 `glibc` 库(如 `qemu-runtime-i386-XXX.tar.gz`),并将这些库解压到适当的位置以便于 QEMU 查找。 #### 清理环境变量的影响 确保环境中未设置可能导致冲突的变量,比如 `LD_LIBRARY_PATH`。如果该变量被设置了,则可能会干扰 QEMU 正确定位所需的共享库文件。因此建议先清除此变量再继续后续步骤: ```bash unset LD_LIBRARY_PATH ``` #### 加载调试模块(可选) 在某些情况下,为了增强调试功能或者支持更复杂的场景,可以在 QEMU 启动之后挂载 `debugfs` 文件系统,并插入自定义内核模块以扩展其能力[^2]: ```bash mount -t debugfs none /sys/kernel/debug/ insmod /lib/modules/4.8.0/extra/ktapvm.ko ``` 以上命令分别用于启用 Linux 调试接口以及加载额外的功能驱动程序。 #### 编写 Makefile 或构建脚本中的工具链前缀 最后一步是在实际开发过程中调整您的项目构建流程,使其能够识别由 QEMU 提供的支持。这通常涉及修改 CMakeLists.txt 文件或是 GNU Makefiles 中的相关字段,将主机上的本地工具替换为目标平台上对应的版本。假设我们正在处理 i386 架构的应用程序,则应将 CC 定义如下所示: ```makefile CC := qemu-i386-gcc CXX := qemu-i386-g++ AR := qemu-i386-ar RANLIB := qemu-i386-ranlib STRIP := qemu-i386-strip ``` 上述方法允许开发者利用宿主机器的强大性能同时又能验证代码是否能在预期硬件上正常工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值