Ubuntu Linux编译出能运行在DD、Tomato下的软件(4)

交叉编译njit8021xclient

1.下载源代码。

2.交叉编译njit8021xclient需要以下三样东西,libgpg-error、libgcrypt、libpcap。

3.增加环境变量export PATH="$PATH:/home/jacky/tools/dd/bin"

4.交叉编译libgpg-error,

相关命令(这里就不把libgpg-error安装到交叉编译工具所在目录了)

        ./configure --host=mipsel-linux

        make

        sudo make install

5.着编译libgcrypt

相关命令

        ./configure --host=mipsel-linux

        make

        sudo make install

6.译libpcap。参考前面内容(最好使用libpcap1.0.0)

7.改Makefile (重点) (将libpcap.a复制到Makefile所在的文件夹)

修改后

CC := mipsel-linux-uclibc-gcc
CFLAGS := -g -Wall -Wextra -I.
CFLAGS += $(shell libgcrypt-config --cflags)
LDLIBS += $(shell libgcrypt-config --libs)

all: njit-client

njit-client: main.o auth.o fillmd5.o fillbase64.o ip.o libpcap.a
$(LINK.o) $^ $(LDLIBS) -o $@ -static -s
%.o: %.c %.h
$(COMPILE.c) $< -o $@
%.o: %.c
$(COMPILE.c) $< -o $@

clean:
rm -f *.o
rm -f njit-client

6.修改自动刷新ip部分(不修改也行)

auth.c中将system("./njit-RefreshIP");

改成system("/sbin/dhpcp-renew"); (注意dhpcp-renew命令tomato下才有)

8.make

................................

结果:交叉编译出的客户端可以通过认证,可是仍然不能维持在线(Ubuntu下的njit-client客户端却可以正常使用)。从使用tcpdump抓包情况来看,收到服务器的三次在线请求后,接着就收到服务器发来的Failure数据包。(目前交叉编译出的xclient能够正常使用)。

Ubuntu Linux编译出能运行在DD、Tomato下的软件

Ubuntu Linux编译出能运行在DD、Tomato下的软件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsgxp.html