Linux环境开发指南
来自SylixOS-wiki
(版本间的差异)
Jiaojinxing (讨论 | 贡献) (→下载 SylixOS 源代码) |
Jiaojinxing (讨论 | 贡献) (→安装交叉编译器) |
||
第29行: | 第29行: | ||
===安装交叉编译器=== | ===安装交叉编译器=== | ||
− | :交叉编译器的下载地地址是 https://launchpad.net/gcc-arm-embedded/4. | + | :交叉编译器的下载地地址是 https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q1-update/+download/gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2 |
− | :下载的交叉编译器压缩包是 gcc-arm-none-eabi- | + | :下载的交叉编译器压缩包是 gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2。 |
:输入如下命令将其解压到 /usr/lib 目录: | :输入如下命令将其解压到 /usr/lib 目录: | ||
− | sudo tar jxvf gcc-arm-none-eabi- | + | sudo tar jxvf gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2 -C /usr/lib |
:输入如下命令将解压后的目录重命名为 /usr/lib/gcc-arm-none-eabi 目录(避免编译器升级,版本号日期改变带来不必要的问题): | :输入如下命令将解压后的目录重命名为 /usr/lib/gcc-arm-none-eabi 目录(避免编译器升级,版本号日期改变带来不必要的问题): | ||
− | sudo mv /usr/lib/gcc-arm-none-eabi- | + | sudo mv /usr/lib/gcc-arm-none-eabi-4_9-2015q1/ /usr/lib/gcc-arm-none-eabi |
:由于 SylixOS 修改了编译器的 reent.h 文件,所以使用编译器自带的 reent.h 文件将不能编译成功,需要 | :由于 SylixOS 修改了编译器的 reent.h 文件,所以使用编译器自带的 reent.h 文件将不能编译成功,需要 | ||
− | 复制 ~/sylixos_workspace/tools/arm-none-eabi-patch/4. | + | 复制 ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h 文件到 /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys 目录替换原有的文件。 |
:替换前先备份编译器原有的 reent.h 文件: | :替换前先备份编译器原有的 reent.h 文件: | ||
第51行: | 第51行: | ||
:再替换编译器原有的 reent.h 文件: | :再替换编译器原有的 reent.h 文件: | ||
− | sudo cp ~/sylixos_workspace/tools/arm-none-eabi-patch/4. | + | sudo cp ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys |
:为了方便后续使用,修改环境变量 PATH: | :为了方便后续使用,修改环境变量 PATH: |
2015年5月12日 (二) 15:20的版本
目录 |
搭建 SylixOS Linux 编译环境
- 笔者的主机操作系统是 ubuntu-12.04,使用的是普通用户 user。
安装开发工具
- 下载 SylixOS 源代码需要 Git 工具,修改配置文件需要用到 vim 编辑器,
如果你的系统不具备这些工具,请先执行如下命令安装它们到你的系统:
sudo apt-get install build-essential sudo apt-get install git sudo apt-get install vim
下载 SylixOS 源代码
- 创建一个名为 sylixos_workspace 的目录(下文约定该目录是 /home/user/sylixos_workspace 目录,即 ~/sylixos_workspace),
打开终端,进入该目录,输入如下命令即可下载 SylixOS Base工程、mini2440开发板BSP、进程 C 库 libcextern 工程等:
git clone http://git.sylixos.com/repo/sylixos-base.git git clone http://git.sylixos.com/repo/bspmini2440.git git clone http://git.sylixos.com/repo/examples.git git clone http://git.sylixos.com/repo/tools.git git clone http://git.sylixos.com/repo/qemu-mini2440.git
- sylixos-base是SylixOS Base工程,里面包含了libsylixos和libcextern子工程,输入如下命令初始化和更新子工程:
cd sylixos-base git submodule init git submodule update
安装交叉编译器
- 下载的交叉编译器压缩包是 gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2。
- 输入如下命令将其解压到 /usr/lib 目录:
sudo tar jxvf gcc-arm-none-eabi-4_9-2015q1-20150306-linux.tar.bz2 -C /usr/lib
- 输入如下命令将解压后的目录重命名为 /usr/lib/gcc-arm-none-eabi 目录(避免编译器升级,版本号日期改变带来不必要的问题):
sudo mv /usr/lib/gcc-arm-none-eabi-4_9-2015q1/ /usr/lib/gcc-arm-none-eabi
- 由于 SylixOS 修改了编译器的 reent.h 文件,所以使用编译器自带的 reent.h 文件将不能编译成功,需要
复制 ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h 文件到 /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys 目录替换原有的文件。
- 替换前先备份编译器原有的 reent.h 文件:
sudo mv /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys/reent.h /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys/reent.h.bak
- 再替换编译器原有的 reent.h 文件:
sudo cp ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys
- 为了方便后续使用,修改环境变量 PATH:
vim ~/.bashrc
- 添加如下命令到 .bashrc 文件的末尾:
export PATH=/usr/lib/gcc-arm-none-eabi/bin:$PATH
- 最后重新启动终端,输入 arm-none-eabi-gcc 如果得到以下结果说明编译器安装成功:
user@ubuntu:~/sylixos_workspace$ arm-none-eabi-gcc arm-none-eabi-gcc: fatal error: no input files compilation terminated.
编译 SylixOS
编译 libsylixos
- 进入 libsylixos 工程目录:
cd ~/sylixos_workspace/libsylixos
- 输入 make 命令以编译:
make
- 编译成功后,会在 Debug 目录生成如下文件:
libdsohandle.a libvpmpdm.so xinput.ko xsiipc.ko
编译 libcextern
- 进入 libcextern 工程目录:
cd ~/sylixos_workspace/libcextern
- 输入 make 命令以编译:
make
- 编译成功后,会在 Debug 目录生成如下文件:
libcextern.so