Wireless Tools交叉编译求助:修改Makefile后编译成功但安装失败
MIPS交叉编译Wireless Tools安装失败排查方案
1. 修正安装路径配置(核心问题)
Wireless Tools默认Makefile的安装路径是针对主机系统的,交叉编译时直接执行make install会将文件安装到本地主机的/usr/local等目录,而非MIPS目标环境,这是导致安装失败的最常见原因。你需要:
- 打开Makefile,找到
PREFIX变量(默认可能为PREFIX=/usr/local),修改为你的MIPS目标根文件系统路径,例如:PREFIX=/path/to/your/mips-target-rootfs - 或者在执行安装命令时指定
DESTDIR前缀,避免污染主机系统:make DESTDIR=/path/to/your/mips-target-rootfs install
2. 补全交叉工具链配套工具
你仅修改了CC,但AR和RANLIB仍使用主机系统的版本,这会导致生成的静态库不兼容MIPS架构。需替换为交叉工具链中的对应工具:
AR=/home/mips-gcc472-glibc216-64bit-r2.3.3/mips-gcc472-glibc216-64bit/bin/mips-linux-gnu-ar RANLIB=/home/mips-gcc472-glibc216-64bit-r2.3.3/mips-gcc472-glibc216-64bit/bin/mips-linux-gnu-ranlib
3. 验证编译产物的架构合法性
编译完成后,用交叉工具链的file命令检查生成的二进制文件,确认是否为MIPS架构:
/home/mips-gcc472-glibc216-64bit-r2.3.3/mips-gcc472-glibc216-64bit/bin/mips-linux-gnu-file iwconfig
若输出显示为MIPS相关架构(如MIPS 32-bit executable),则编译环节无问题,问题集中在安装配置。
4. 手动拷贝完成安装(备选方案)
若修改Makefile仍无法正常安装,可跳过make install,手动拷贝产物到目标环境:
- 将编译好的二进制文件(
iwconfig、iwlist等)拷贝到目标根文件系统的/usr/sbin目录 - 将静态库
libiw.a拷贝到目标根文件系统的/usr/lib目录 - 将头文件
iwlib.h拷贝到目标根文件系统的/usr/include目录
内容的提问来源于stack exchange,提问作者newbielinux_guy
相关产品推荐
相关产品推荐

