Chinaunix首页 | 论坛 | 博客
  • 博客访问: 434442
  • 博文数量: 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:03:30

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

cd $Project
make export-sysroot

执行成功后,在$Project/export/目录下就有sysroot这个目录了。 下面是sysroot目录的大致结构。

wrlinux4_3@xxx:~/WindRiver/workspace/tcp_prj/export/sysroot$ ls -l
total 4
drwxr-xr-x 4 wrlinux4_3 wrlinux4_3 4096 2016-12-16 11:18 common_pc_64-glibc_small
wrlinux4_3@xxx:~/WindRiver/workspace/tcp_prj/export/sysroot$ cd common_pc_64-glibc_small/
wrlinux4_3@xxx:~/WindRiver/workspace/tcp_prj/export/sysroot/common_pc_64-glibc_small$ ls -l
total 28
-rw-r--r-- 1 wrlinux4_3 wrlinux4_3  3174 2016-12-16 11:18 config.properties
-rw-r--r-- 1 wrlinux4_3 wrlinux4_3  6695 2016-12-16 11:18 config.sh
drwxr-xr-x 5 wrlinux4_3 wrlinux4_3  4096 2016-12-16 11:19 sysroot
drwxr-xr-x 2 wrlinux4_3 wrlinux4_3 12288 2016-12-16 11:18 x86-linux2

sysroot目录里面主要是库文件(.so)和头文件(.h)
在x86-linux2目录下的文件主要是工具链的wrapper。 注意这个目录下的工具链并不是可以独立使用的工具链,wrapper最终还是要调用安装目录下的工具链。

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

下面是一个Makefile的例子
CC =$Project/export/sysroot/common_pc_64-glibc_small/x86-linux2/i586-wrs-linux-gnu-x86_64-glibc_small-gcc --sysroot=$Project/export/sysroot/common_pc_64-glibc_small/sysroot

CFLAGS = -g -Os -fomit-frame-pointer -pipe -Wall -fexceptions
#LDFLAGS = -g -static
LDFLAGS = -g -lpthread

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

all: test

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

clean:
        rm -f *.o main

前面已经提到,工具链的wrapper最终要调用安装目录下的工具链,所以在make之前要把安装目录下的工具链所在路径添加到PATH里面
export PATH=$INSTALL_PATH/WindRiver/wrlinux-4/layers/wrll-toolchain-4.4a-341/i586/toolchain/x86-linux2/bin:$PATH





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