GrabDuck

在mips下成功交叉编译cairo - RealPresence and Media Collaboration 专栏 - CSDN博客

:

 今天在成功交叉编译cairo,
使用的交叉编译起是mips-gcc 
在编译的整个过程还是很多的常识性错误的。
首先看配置:

./configure   --prefix=/mnt/mips-cairo   --host=mips  --enable-directfb  --disable-win32   --disable-pdf   --disable-ps  --enable-xlib=no   --enable-xlib-xrender=no   --enable-win32-font=no  --enable-freetype CC=mips-gcc  CXX=mips-g++  LDFLAGS=-L/usr/local/mips-crosstools/mipsel-linux/lib   CPP21FLAGS=-I/usr/local/mips-crosstools/mipsel-linux/include   directfb_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/usr/lib  directfb_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/usr/include/directfb   png_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/libpng  png_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/libpng  FREETYPE_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/lib   FREETYPE_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/include 

设置安装目录: --prefix=/mnt/mips-cairo
平台:  --host=mips
一些配置项: 
--enable-directfb  --disable-win32   --disable-pdf   --disable-ps  --enable-xlib=no   --enable-xlib-xrender=no   --enable-win32-font=no  --enable-freetype
设置交叉编译环境相关内容:
CC=mips-gcc  CXX=mips-g++  LDFLAGS=-L/usr/local/mips-crosstools/mipsel-linux/lib   CPP21FLAGS=-I/usr/local/mips-crosstools/mipsel-linux/include
需要依赖的其他库:
directfb_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/usr/lib  directfb_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/nexus/lib/directfb/src/DirectFB-1.0.0/build.97405B0/usr/include/directfb   png_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/libpng  png_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/libpng  FREETYPE_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/lib   FREETYPE_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/include

make
make install  搞定

以上的东西都是正确。 
这里需要记录下自己犯的低级性错误:
在查看./configure --help 后发现需要指定一些额外的库,比如:             C compiler flags for POPPLER, overriding pkg-config
POPPLER_LIBS
linker flags for POPPLER, overriding pkg-config
LIBRSVG_CFLAGS
C compiler flags for LIBRSVG, overriding pkg-config
LIBRSVG_LIBS
linker flags for LIBRSVG, overriding pkg-config
等,
我是这么指定的:
FREETYPE_LIBS=/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/lib   FREETYPE_CFLAGS=/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/include 
如果采用上述的指定方式的话,在编译的时候是无法找到相应的头文件的,正确的书写方式是:
FREETYPE_LIBS=-L/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/lib   FREETYPE_CFLAGS=-I/opt/bcmplatform/refsw-20090209.97405/BSEAV/lib/freetype-2.1.5/include 
我自己认为这是自己经验缺乏,也同时反应了autognu的一个缺陷。 在帮助文件中,并没有说明指定的方式。