Zlib移植指南

来自SylixOS-wiki
(版本间的差异)
跳转至: 导航, 搜索
(下载 zlib)
(修改 Makefile)
第46行: 第46行:
  
 
:*2. 修改 CFLAG 和 SFLAG:
 
:*2. 修改 CFLAG 和 SFLAG:
  CFLAG = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared 原有的定义,略
+
  CFLAGS = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared 原有的定义,略
  SFLAG = $(SYLIXOS_CFLAGS) 原有的定义,略
+
  SFLAGS = $(SYLIXOS_CFLAGS) 原有的定义,略
  
 
:*3. 修改 LDSHAREDLIBC:
 
:*3. 修改 LDSHAREDLIBC:

2015年5月18日 (一) 15:40的版本

目录

下载 zlib

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

配置 zlib

  • 1. 增加编译器环境变量:
开源版 ARM 工具链环境变量
export CC=arm-none-eabi-gcc
商业版 ARM 工具链环境变量
export CC=arm-sylixos-eabi-gcc
  • 2. 配置:
./configure --prefix=/opt/arm-sylixos-zlib

修改 Makefile

  • 1. 加入如下内容(编译好的 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
  • 2. 修改 CFLAG 和 SFLAG:
CFLAGS = $(SYLIXOS_CFLAGS) $(SYLIXOS_EXLIBS) -shared 原有的定义,略
SFLAGS = $(SYLIXOS_CFLAGS) 原有的定义,略
  • 3. 修改 LDSHAREDLIBC:
LDSHAREDLIBC=-shared $(SYLIXOS_EXLIBS)

编译 zlib

make
sudo make install

部署 zlib

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

变种
操作
导航
工具