開發平台:Ubuntu 12.04.1 LTS(32bit)
開發板: DevKit8000
使用庫:libwebsockets (libwebsockets-1.0-chrome25-firefox17.tar.gz) (http://git.warmcat.com/cgi-bin/cgit/libwebsockets/)
輔助庫:zlib(source code ,version 1.2.7)( http://www.zlib.net/ )
交叉編譯器:arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
step1:開發環境搭建
按照說明書上寫的(DevKit8000 用戶手冊 P35)
1) 交叉編譯器的安裝
# tar xvjfarm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz2 -C /usr/local/
2) 添加環境變量
#export PATH=/usr/local/arm-2007q3/bin:$PATH
注: 用戶可把它寫入用戶目錄的.barsrc 文件中,那麼系統啟動的時候自動完成環境變量的添加,查看路徑可以使用 echo $PATH 命令。
step2: 交叉編譯zlib
1) #tar jvxf zlib-1.2.7.tar.bz2
2) # cdzlib-1.2.7/
3) #./configure–shared --prefix=/zlib的安裝路徑
4) #make LDSHARED="arm-none-linux-gnueabi-gcc -shared-Wl,-soname,libz.so.1" CC_FOR_BUILD="arm-none-linux-gnueabi-gcc"CC="arm-none-linux-gnueabi-gcc" LD="arm-none-linux-gnueabi-ld"CPP="arm-none-linux-gnueabi-g++ -E"AR="arm-none-linux-gnueabi-ar"
CFLAGS="-fPIC"libz.so.1.2.7 libz.a
5) 拷貝zconf.h zlib.h到/usr/local/arm-2007q3/arm-none-linux-gnueabi/include/
6) 拷貝 libz.so*到/usr/local/arm-2007q3/arm-none-linux-gnueabi/lib/
注:/usr/local/arm-2007q3是交叉編譯安裝的路徑
step3:交叉編譯websocket
1) #tarjvxf libwebsockets.tar.bz2
2) #cdlibwebsockets
3) 修改程序 ./test-server/test-server.c
L78 INSTALL_DATADIR"/favicon.ico"改成"favicon.ico"
L86 INSTALL_DATADIR"/test.html"改成"test.html"
4) #./autogen.sh
5) #CC=arm-none-linux-gnueabi-gcc
./configure--build=i686-pc-linux –host=arm-none-linux-gnueabi
6) #make
7) #cd test-server/.libs
8) #filelibwebsockets-test-server,驗證該文件是否為ARM的可執行文件
如是的話,會提示:
ELF 32-bit LSBexecutable, ARM, version 1 (SYSV), dynamicallylinked (uses shared libs), for GNU/Linux 2.6.14, not stripped。
step4:配置開發板
1) 使用交叉網線將主機和開發板連接起來,並配置主機和開發板的ip地址,它們只需要同一網段即可。
主機PC:#ifconfig eth0 192.168.1.100
開發板:#ifconfig eth0 192.168.1.1
2) 將PC上的./lib/.libs/libwebsockets.so.1拷貝到開發板/lib中
3) 將./test-server/.libs/libwebsockets-test-server和./test-server/test.html拷貝到開發板上,放在同一目錄下,在開發板上運行#./libwebsockets-test-server
4) 在PC上,打開支持HTML5的浏覽器,http://192.168.1.1:7681