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
阅读(861) | 评论(0) | 转发(0) |