在bb板上交叉编译的时候经常会出现configure或pkg-config所找的包是host上的,就算编译通过了也实在不能放心。
试了下Scratchbox2没想到那么简单,相见恨晚^_^
简明步骤:
sudo apt-get install debootstrap scratchbox2
cd rootfs
sudo debootstrap --verbose --arch armel --foreign stable `pwd` http://ftp.at.debian.org/debian
sb2-init omap3 /opt/CodeSourcery/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
sudo sb2
其中rootfs为目标板文件系统的目录,debootstrap会在里面安装相关的文件。
omap3为自己取的名字,可以自己命名。gcc参数需填整完整的路径。
更详细的参数说明见sb2-init 帮助。
注意sb2需要sudo,否则编译完成后无法make install.(因为debootstrap需要sudo权限,生成的目录权限也是root的)
sb2后相当于进入chroot环境中,install/pkg-config都只在目标板文件系统中查找/安装文件。此时一般的开源软件包
./configure --prefix=/usr && make && make install 即可完成编译以及安装。