Zlib移植

来自SylixOS-wiki
(版本间的差异)
跳转至: 导航, 搜索
(下载 zlib)
(部署 zlib)
 
(未显示1个用户的29个中间版本)
第2行: 第2行:
  
 
:在 linux 环境下操作。
 
:在 linux 环境下操作。
:进入 sylixos 工作空间:
+
:*进入 sylixos 工作空间:
 
  cd /home/user/sylixos_workspace
 
  cd /home/user/sylixos_workspace
  
:下载 zlib:
+
:*下载 zlib:
连接在 http://www.zlib.net/ 页面中
+
:zlib 的主页为 http://www.zlib.net
  
:解压 zlib:
+
:*解压 zlib:
 
  tar zxvf zlib-1.2.8.tar.gz
 
  tar zxvf zlib-1.2.8.tar.gz
  
:修改 zlib 目录名,避免版本升级带来不必要的麻烦:
+
:*修改 zlib 目录名,避免版本升级带来不必要的麻烦:
 
  mv zlib-1.2.8 zlib
 
  mv zlib-1.2.8 zlib
  
:进入 zlib 目录:
+
:*进入 zlib 目录:
 
  cd zlib
 
  cd zlib
  
==configure==
+
==配置 zlib==
  
:配置:
+
:*增加编译器环境变量:
  ./config --prefix=/lib/zlib
+
export CC=arm-none-eabi-gcc
 +
 
 +
:*配置:
 +
  ./configure --prefix=/opt/arm-sylixos-zlib
  
 
==修改 Makefile==
 
==修改 Makefile==
:1:(编译好的 SylixOS 与 cextern 目录根据实际情况设置)
+
:*加入如下内容(编译好的 SylixOS Base 工程路径根据实际情况设置)
  # SylixOS PATH
+
  # SylixOS Base PATH
  SYLIXOS_PATH=/home/user/sylixos_workspace/libsylixos
+
  SYLIXOS_BASE_PATH=/home/user/sylixos_workspace/sylixos-base
CEXTERN_PATH=/home/user/sylixos_workspace/libcextern
+
 
:2:
+
:*加入如下内容:
  # SYLIXOS includes
+
  # SylixOS includes
  INCDIR  = $(SYLIXOS_PATH)/SylixOS
+
  INCDIR  = $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS
  INCDIR += $(SYLIXOS_PATH)/SylixOS/include
+
  INCDIR += $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include
  INCDIR += $(SYLIXOS_PATH)/SylixOS/include/inet
+
  INCDIR += $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet
  SHLDIR  = $(SYLIXOS_PATH)/Debug
+
  SHLDIR  = $(SYLIXOS_BASE_PATH)/libsylixos/Debug
  SHLDIR += $(CEXTERN_PATH)/Debug
+
  SHLDIR += $(SYLIXOS_BASE_PATH)/libcextern/Debug
:3:
+
 
  # SYLIXOS compile and link options
+
:*加入如下内容:
 +
  # SylixOS compile and link options
 
  SYLIXOS_CFLAGS=-DSYLIXOS -DSYLIXOS_LIB $(addprefix -I,$(INCDIR)) -mcpu=arm920t -fmessage-length=0 -fno-short-enums
 
  SYLIXOS_CFLAGS=-DSYLIXOS -DSYLIXOS_LIB $(addprefix -I,$(INCDIR)) -mcpu=arm920t -fmessage-length=0 -fno-short-enums
 
  SYLIXOS_EXLIBS=-nostdlib $(addprefix -L,$(SHLDIR)) -lcextern -lvpmpdm -lm -lgcc
 
  SYLIXOS_EXLIBS=-nostdlib $(addprefix -L,$(SHLDIR)) -lcextern -lvpmpdm -lm -lgcc
  
:4:
+
:*修改 CFLAG 和 SFLAG:
  CC=arm-none-eabi-gcc
+
  CFLAG = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared 原有的定义,略
 +
SFLAG = $(SYLIXOS_CFLAGS) 原有的定义,略
  
:5:
+
:*修改 LDSHAREDLIBC:
CFLAG = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared ......
+
SFLAG = $(SYLIXOS_CFLAGS) ......
+
 
+
:6:
+
LDSHARED=arm-none-eabi-gcc ......
+
CPP=arm-none-eabi-gcc .......
+
AR=arm-none-eabi-ar
+
RANLIB=arm-none-eabi-ranlib
+
 
+
:7:
+
 
  LDSHAREDLIBC=-shared $(SYLIXOS_EXLIBS)
 
  LDSHAREDLIBC=-shared $(SYLIXOS_EXLIBS)
  
==编译==
+
==编译 zlib==
:1:
+
 
  make
 
  make
  make install
+
  sudo make install
:2:
+
 
在 SylixOS 主机 /lib 中创建 zlib 文件夹, 然后将 make install 的结果拷贝到此处.
+
==部署 zlib==
:3:
+
:*在 SylixOS 目标板的 /lib 目录中创建 zlib 文件夹, 然后将 make install 的结果(位于 /opt/arm-sylixos-zlib 目录)下载到 SylixOS 目标板的 /lib/zlib 目录。
创建好相应的符号链接
+
 
 +
:下面的命令在 SylixOS 目标板的终端执行:
 +
 
 +
:*创建好相应的符号链接:
 
  cd /lib/zlib/lib
 
  cd /lib/zlib/lib
 
  ln -s libz.so.1 libz.so
 
  ln -s libz.so.1 libz.so
 
  ln -s libz.so.1.2.8 libz.so
 
  ln -s libz.so.1.2.8 libz.so
:4:
+
 
修改环境变量
+
:*修改环境变量:
  $LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/zlib/lib
+
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/zlib/lib
 
  varsave
 
  varsave

2015年5月15日 (五) 15:39的最后版本

目录

[编辑] 下载 zlib

在 linux 环境下操作。
  • 进入 sylixos 工作空间:
cd /home/user/sylixos_workspace
  • 下载 zlib:
zlib 的主页为 http://www.zlib.net
  • 解压 zlib:
tar zxvf zlib-1.2.8.tar.gz
  • 修改 zlib 目录名,避免版本升级带来不必要的麻烦:
mv zlib-1.2.8 zlib
  • 进入 zlib 目录:
cd zlib

[编辑] 配置 zlib

  • 增加编译器环境变量:
export CC=arm-none-eabi-gcc
  • 配置:
./configure --prefix=/opt/arm-sylixos-zlib

[编辑] 修改 Makefile

  • 加入如下内容(编译好的 SylixOS Base 工程路径根据实际情况设置):
# SylixOS Base PATH
SYLIXOS_BASE_PATH=/home/user/sylixos_workspace/sylixos-base
  • 加入如下内容:
# SylixOS includes
INCDIR  = $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS
INCDIR += $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include
INCDIR += $(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet
SHLDIR  = $(SYLIXOS_BASE_PATH)/libsylixos/Debug
SHLDIR += $(SYLIXOS_BASE_PATH)/libcextern/Debug
  • 加入如下内容:
# SylixOS compile and link options
SYLIXOS_CFLAGS=-DSYLIXOS -DSYLIXOS_LIB $(addprefix -I,$(INCDIR)) -mcpu=arm920t -fmessage-length=0 -fno-short-enums
SYLIXOS_EXLIBS=-nostdlib $(addprefix -L,$(SHLDIR)) -lcextern -lvpmpdm -lm -lgcc
  • 修改 CFLAG 和 SFLAG:
CFLAG = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared 原有的定义,略
SFLAG = $(SYLIXOS_CFLAGS) 原有的定义,略
  • 修改 LDSHAREDLIBC:
LDSHAREDLIBC=-shared $(SYLIXOS_EXLIBS)

[编辑] 编译 zlib

make
sudo make install

[编辑] 部署 zlib

  • 在 SylixOS 目标板的 /lib 目录中创建 zlib 文件夹, 然后将 make install 的结果(位于 /opt/arm-sylixos-zlib 目录)下载到 SylixOS 目标板的 /lib/zlib 目录。
下面的命令在 SylixOS 目标板的终端执行:
  • 创建好相应的符号链接:
cd /lib/zlib/lib
ln -s libz.so.1 libz.so
ln -s libz.so.1.2.8 libz.so
  • 修改环境变量:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/zlib/lib
varsave
个人工具
名字空间

变种
操作
导航
工具