建立OPENWRT交叉编译环境

Cross Compile

If you want to use a program, currently not contained in the OpenWrt repository, you probably won't find a binary compiled for your CPU. Provided that it is released as open source, you can download the code and compile it using the OpenWrt Buildroot.

Note that not every code is compilable for every CPU architecture. Also performance on embedded systems is limited compared to ordinary computers.

Procedure

  • Follow the build instructions outlined in OpenWrt Buildroot – Usage
  • Locate the toolchain binaries in the staging_dir/toolchain-architecture_gcc-compilerver_uClibc-libcver/bin/ directory
  • Add that directory to the PATH environment variable:
    • PATH=$PATH:(your toolchain/bin directory here)
    • export PATH
  • Set the STAGING_DIR environment variable to the above toolchain dir and export it:
    • STAGING_DIR=(your toolchain directory here)
    • export STAGING_DIR
  • Download and unpack the code to be compiled, change into the unpacked directory
  • Pass the host to the build system of the package to compile
    • For GNU configure, use --host=architecture-openwrt-linux-uclibc (for example: mips-openwrt-linux-uclibc)
    • For GNU make, override the CC and LD environment variables (usually not needed if GNU configure was used)
      • make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld
  • If compilation aborts due to missing header files or shared objects, you might need to override CFLAGS and LDFLAGS to point to thestaging_dir/target-architecture_uClibc-libcver/usr/include and …/usr/lib directories
  • Debugging requires gdb in the toolchain. Default config does not include it. Include using make menuconfig. [Advanced configuration options→Toolchain Options→Build gdb]
  • Remote debugging can be done using script ./scripts/remote-gdb

When compilation is finished, copy the resulting binary and realted libraries to the target device to test it. It might be necessary to set LD_LIBRARY_PATH on the target to point the binary to libraries in nonstandard locations.

If the program works well enough, you maybe want to build a real package for the opkg package manager and make it easily accessible for everyone out there. See Creating your own packages and Using Dependencies for further information on that.


转载自:http://wiki.openwrt.org/doc/devel/crosscompile 

阅读更多
个人分类: Linux/ARM
上一篇泰国酒店预订攻略
下一篇linux串口编程
想对作者说点什么? 我来说一句

Openwrt交叉编译环境使用总结.pdf

2014年07月29日 534KB 下载

ARM----建立交叉编译环境

2011年11月06日 847KB 下载

没有更多推荐了,返回首页

关闭
关闭