Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438740
  • 博文数量: 99
  • 博客积分: 65
  • 博客等级: 民兵
  • 技术积分: 1012
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-20 16:30
个人简介

linux kernel 工程师

文章分类

全部博文(99)

文章存档

2018年(5)

2017年(12)

2016年(27)

2015年(10)

2014年(43)

2012年(2)

我的朋友

分类: LINUX

2016-12-20 11:32:59

1. 在wrlinux6.0中如何生成sysroot
在 WRlinx6.0中,创建一个工程,并且make fs成功之后,就可以创建sysroot了。

cd $Project
make export-sdk

其实也可以使用make export-sysroot的方式。二者的区别在前者不仅导出了sysroot,还导出了toolchain

执行成功后,在$Project/export/目录下就有wrlinux-std-sato-6.0.0.26-eglibc-x86_64-intel_x86_64-wrlinux-image-glibc-std-sato-sdk.sh。 其实这个.sh文件不只是一个脚本,它是把安装脚本和安装文件合并在一起了。

2. 如何安装sysroot
执行这个sh文件, 会提示输入安装路径,之后sysroot就会安装到指定的目录了。
安装后的目录如下

xxx@sysroot$ ls
config.properties                       scripts
config.sh                               site-config-x86_64-wrs-linux
environment-setup-x86_64-wrs-linux      site-config-x86-wrsmllib32-linux
environment-setup-x86-wrsmllib32-linux  sysroot.properties
env.sh                                  sysroots
export                                  sysroot-x86-64.properties
host-cross                              sysroot-x86.properties
Makefile                                version-x86_64-wrs-linux
platform_cfg                            version-x86-wrsmllib32-linux
README                                  wrlinux-std-sato-6.0.0.26-eglibc-x86_64-intel_x86_64-wrlinux-image-glibc-std-sato-sdk.sh

其中
sysroots/x86_64-wrlinuxsdk-linux/usr/bin/x86_64-wrs-linux 工具链目录
sysroots/x86_64-wrs-linux是sysroot目录


3. 如何使用sysroot
要编译应用程序,需要引用到sysroot,以及使用sysroot里面的工具链。

下面是一个Makefile的例子

SOURCES = test.c
OBJS = $(SOURCES:.c=.o)

all: test

test: $(OBJS)
        $(CC) -o $@ $^ $(LDFLAGS) $(LIBS)

clean:
        rm -f *.o test

在执行make命令之前,需要执行
source $sysyroot/env.sh
这样的话CC命令以及这些CFLAGS, LDFLAGS就都有定义了。但是没有看到引用sysroot啊,别着急,看看env.sh里面写了什么。

4. env.sh定义了什么东西

前面提到了source env.sh,现在看看env.sh里面是什么东东。其中export CC这个变量

export PATH=$sysroot/sysroots/x86_64-wrlinuxsdk-linux/usr/bin:$sysroot/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/x86_64-wrs-linux:$PATH
export CC="x86_64-wrs-linux-gcc  -m64  --sysroot=$sysroot/sysroots/x86_64-wrs-linux

CC已经指定了--sysroot=--sysroot=$sysroot/sysroots/x86_64-wrs-linux
"x86_64-wrs-linux-gcc"工具链需要到$sysroot/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/x86_64-wrs-linux
目录来找工具链









阅读(730) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~