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) |