而在嵌入式ARM板上,一般是由busybox提供一个wget的简化版本, 这个版本功能大幅缩减,常用的-o 日志文件功能,及断线重连功能都没有。 为此想把完整的wget移植到嵌入式ARM上。
桌面交叉编译环境:fedora9 + arm tool chain 2008版 (arm-linux-gcc 编译器版本4.2.2)
目标板 linux 2.6.30 + AT91SAM9G45
步骤:
1) 首先去sourceforge下载wget的源码(我是在日本分站下载的,不知道为什么英文站没有被排在百度搜索的前几名)
wget-1.13.4.tar.gz 18-Sep-2011 11:17 2.7M来看一看命令行的全部选项
然后解压 tar zxvf wget-1.13.4.tar.gz
2) 配置, ./configure 提示有错误:
configure: error: –with-ssl was given, but GNUTLS is not available.
真是悲剧啊,查到网上有人说这么办就行了:
./configure --with-ssl=openssl --host=arm-linux
果然不提示错误了, configure过程OK了!
3)make
过程不长,大约3分钟吧就make好了,然后去相对路径src下找到wget这个可执行文件
我把wget改了个名cp wget wget_full,然后传到ARM开发板上了。
4)补充共享库
在ARM上运行./wget_full, 提示少so库。而且少了很多,保守估计要10个以上
办法是把一些库拷贝过来。我的arm linux tool chain装在了/opt/armlinux2008目录下。所以做以下2个操作
把/opt/armlinux2008/arm/usr/lib 所有的so库 拷贝到ARM目标板的 /usr/lib下
把/opt/armlinux2008/arm/lib 所有的so库 拷贝到ARM目标板的 /lib下
这样就不会提示少库了
5)使用方法
./wget_full ftp://username:password@192.168.99.99/xxx.bz2
/opt/wget_full/# ./wget_full --help
GNU Wget 1.13.4, a non-interactive network retriever.
Usage: wget_full [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options too.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a `.wgetrc'-style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
-a, --append-output=FILE append messages to FILE.
-d, --debug print lots of debugging inf