Ubuntu 9.04下交叉编译PPP for ARM:问题与解决方案

需积分: 10 5 下载量 22 浏览量 更新于2024-07-28 收藏 424KB DOC 举报
本文档主要介绍了如何在基于Ubuntu 9.04的Linux环境下进行ARM架构的交叉编译,目标是安装和配置PPP (Point-to-Point Protocol) 库,特别是版本2.4.51。由于涉及到的平台转换和特定编译问题,这里详细阐述了几个关键步骤。 首先,作者提到早期版本(2.4.51之前)的PPP不支持`--host=`选项,仅支持`--prefix=`,这意味着在进行交叉编译时需要使用`make CC=arm-linux-gcc`,但在这个过程中遇到了语法错误,尤其是在编译pppd/plugins部分。问题可能出在交叉编译工具上,或者与包含头文件little_endian.h有关。在常规编译环境下(例如使用cc),这个问题可能不会出现。尽管如此,用户可能只需要pppd和chat模块,其余组件可以忽略。 其次,编译过程中会遇到缺少pcap.h头文件的错误,这与libpcap库相关,该库用于包过滤功能。若不想安装libpcap,可以通过修改pppd/Makefile.linux文件,将支持PPP包过滤的第51行`FILTER=y`注释掉,即`#FILTER=y`,以避免安装该库。 接着,作者提及在执行`make install`命令时出现了错误,提示strip命令无法识别输入文件格式。这是因为默认使用的strip命令是针对PC环境的,而非ARM的arm-linux-strip。解决方法是进入相应的文件夹(如pppstats),然后修改Makefile,将`$(INSTALL)-c-sppps`这一行替换为使用arm-linux-strip的相应命令,以确保安装过程的正确性。 本文档提供了解决在ARM架构上交叉编译PPP遇到的头文件问题、包过滤库选择以及strip命令适配的关键步骤,对需要在嵌入式系统或ARM环境中部署PPP的开发者来说,具有实用价值。