2012-03-06

交叉编译Poco 1.4.2p1

  1. Ubuntu Linux作为开发环境,使用gcc交叉编译为ARM处理器。编译器:arm-angstrom-linux-gnueabi-gcc。
  2. 下载poco 1.4.2p1,并解压,进入解压后的目录。
  3. 创建配置文件:
    1. 有两个配置文件可以使用:build/config/Angstrom和build/config/ARM-Linux。Angstrom没有指定openssl库的头文件和库文件的位置,所以除非它们在编译器已知的位置,否则会编译不通过。ARM-Linux使用STLport作为C++的标准库,而不是gcc自带的C++标准库,而且在配置文件中有指定openssl的位置信息。
    2. 由于我们已经有gcc自带的C++标准库,所以不需要STDport。而且我们希望指定Openssl的位置。所以我们需要创建一个自己的配置文件,可以基于这两个文件的任何一个。这里以ARM-Linux为基础。
    3. 在build/config目录中,复制ARM-Linux为AT91-Linux。修改AT91-Linux文件:
      1. 修改OPENSSL_INCLUDE和OPENSSL_LIB,使他们指向正确的目录。
      2. 修改TOOL为:arm-angstrom-linux-gnueabi。
      3. 修改SYSFLAGS:去掉‘-I$(STLPORT_INCLUDE)'。
      4. 修改SYSLIBS:去掉'-L$(STLPORT_LIB)'。
  4. 配置代码:回到poco顶级目录,运行:./configure --config=AT91-Linux --omit=Data/ODBC,Data/MySQL,PageCompiler,PageCompiler/File2Page
  5. 编译代码:make
  6. 编译的结果在:lib/Linux/ARM中。
  7. stripped库大小为:4.9MB,包括:CppUnit, Crypto, Data, DataSQLite, Foundation, Net, NetSSL, Util, XML, Zip.

No comments:

Post a Comment