Linux下的源文件安装

来源:互联网 发布:android京东商城源码 编辑:程序博客网 时间:2024/05/16 23:57

  Linux 下源文件安装一共需要三步:

  1  ./configure

  2  make

  3  make install

 以源文件安装包freetype-2.4.10.tar.bz2 为例,下载到安装包后首先用tar xjf freetype-2.4.10.tar.bz2 将其解压。

解压后文件夹为freetype-2.4.10,假设其在根目录下,进入此文件夹 cd /freetype-2.4.10。

 1  ./configure

configure是一个可执行脚本,用来检查系统是否有编译需要的库以及库的版本是否满足要求。如果要指定安装

目录可以通过prefix指定,一般默认prefix=usr/local,可以在configure文件里查看。如果要设置自己的安装目录

(便于查看都安装了哪些文件),假设安装在/tmp目录下,可以:

 ./configure  --prefix=/tmp

  2   make

  根据Makefile编译文件

  3 make install

  把编译好的文件安装到系统中。所谓安装一般也就是一个复制的过程,把产生的头文件、库文件等拷贝到安装

目录里。查看Makefile的install可知,类似于make clean.。

编译矢量字体文件:

gcc -finput-charset=GBK -fexec-charset=UTF-8 -o example1 example1.c  -I /usr/local/include/freetype2 

-lfreetype -lm

  如果你认为所有的源文件安装都是这样的,那就错了,上面的这三步适合linux下使用,在arm上就不行了。

那我如何知道该在什么平台怎么安装呢,这就要查看源文件提供的文档了。如果要知道Linux下怎么安装,查看

vi  /freetype-2.4.10/docs/INTSALL.UNIX。

如果安装的文件在要arm上运行,则要查看vi  /freetype-2.4.10/docs/INTSALL.CROSS  ,CROSS是交叉编译

的意思。根据文档可知arm上安装步骤:

1    ./configure --host=arm-linux

host指定编译好的文件在什么平台下执行,arm上的话指定交叉编译。

2   make
3    make DESTDIR=/tmp install

DESTDIR指定安装路径,也可以在第一步用prefix指定。

当前编译好的文件放在了/tmp目录下,是不能在arm上运行的。要想在arm上运行

编译出来的头文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
编译出来的库文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

库文件复制
把tmp/usr/local/lib/*  复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
sudo cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib -d -rf

库文件拷贝到网络文件系统下编译好的应用程序才可以在arm板上运行
cp *so* /nfs_root/lib -d

头文件复制
把tmp/usr/local/include/*  复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include -rf


这样编译有个头文件错误,因为#include<ftheader.h>包含头文件路径是

freetype/config/ftheader.h

但是theader.h 实际路径是在
freetype2/freetype/config/ftheader.h 

所以用要移动一下:

cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

mv freetype2/freetype .

第一部分没有移动用 -I /usr/local/include/freetype2 指定头文件路径,这样每次编译都要指定。


编译文件

arm-linux-gcc -finput-charset=GBK -o example1 example1.c  -lfreetype -lm


安装不同的gcc版本其实拷贝的路径是不同的,可以在安装路径下通过

find -name include

find -name stdio.h

来判断实际路径,一般是 ./..../include/stdio.h 这种形式的,即include后不再有任何目录。lib路径

find -name lib

参照incllue路径选择是哪个,一般和Include是在同一个目录下。



gcc-3.4.5上的安装路径
头文件
cp /work/freetype-2.4.10/tmp/usr/local/include/* /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include -rf

mv freetype2/freetype ./

库文件

cp /work/freetype-2.4.10/tmp/usr/local/lib/* /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib -rf -d

这样的话在linux系统下就可以使用arm-linux-gcc交叉编译了

在arm板上运行的话,需要把库文件拷贝到网络根文件系统下的lib里面

cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/libfreetype.so.6       /nfsroot/lib










0 0
原创粉丝点击