Smbclient的移植到嵌入式设备(arm,montavista,arm_v5t_le-gcc)

经过多番折腾,在用多种方法尝试编译和移植不同版本的samba软件之后,找到一种可以顺利将smb协议应用到arm+arm_v5t_le-gcc环境中的方法。其步骤大致如下:

1.下载源代码
        从http://www.samba.org 下载 samba-2.2.7a.tar.gz 并解压。

因为按照本操作文档执行,可以移植成功2.X.X版本。当移植3.x.x版本时,由于系统库的不支持,无法编译成功。
2.设置环境变量
  export CPPFLAGS=-I/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/include  export LDFLAGS=-L/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/lib

  export CC=/opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le3.

3.执行:./configure --host=i686 --target=arm-linux

host表示当前机器的环境。Target表示交叉编译要支持的环境

4.修改makefile,将

·prefix修改为:prefix=/mnt/nand/web/

·编译器修改为CC=arm_v5t_le-gcc

因为Web程序在板上的位置在于/mnt/nand/web/中,smbClient程序需要到lib下找smb.conf配置文件。又由于我们板上的程序必须由arm_v5t_le-gcc编译器编译才能执行。

5.执行make make 会出现许多warning,但是编译成功。

6.make install后就安装到了本地/mnt/nand/web/中。拷贝其中的smbclient到板子/mnt/nand/web/中。

7.运行./smbClient -L //DevolopServer -N 出错,报错:找不到/mnt/nand/web/lib/smb.conf

8.在/mnt/nand/web/新建lib目录,并将安装包中packaging/下任意一smb.conf拷贝到板子的/mnt/nand/web/lib下。

9.执行./smbClient -L //DevolopServer -N(查询DevolopServer上提供的目录和打印机清单)

10.执行./smbClient -L //DevolopServer/pub -N(登陆pub目录)

可以看到,已经登陆成功,并且已进入smb的操作命令行模式。

11. 执行get test4smb.txt test.txt(下载一个txt文件)

可以发现这个文件已经存在于nand文件系统中。

至此,证明已可用smbclient访问windows共享目录下文件。

你可能感兴趣的:(windows,Web,嵌入式,文档,makefile,编译器)