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
- Linux下的源文件安装
- LINUX源文件的安装方法
- linux下使用源文件安装jdk1.8
- linux下的开源文件恢复工具
- linux 安装编译 源文件
- 在linux下C语言源文件到可执行文件的过程
- linux下的 sudo ln -s 源文件 目标文件
- Windows下源文件编译安装OpenCV2.3
- Ubuntu下编译和安装源文件
- 无root权限下安装mysql源文件
- Linux下编译链接多个源文件
- Linux源文件编译安装SVN(Subversion)
- linux下的安装
- linux下用vim编写C/C++工程(多个源文件)的基本方法
- linux下用vim编写C/C++工程(多个源文件)的基本方法
- Linux下如何将源文件逐步编译成目标文件的过程
- 内核源文件里的Linux秀
- 多源文件的linux驱动Makefile编写
- CSS 中文字体的英文名称
- android 中的onlayout onmeasure调用顺序
- unity3d中的坑和解决方案
- JavaScript 指南 - 闭包
- LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
- Linux下的源文件安装
- iphone中 CoreData 框架的简单解释
- OpenLayers中地图缩放级别的设置方法
- mysql中间件amoeba实现mysql读写分离
- Unity平台宏定义
- UNIX Domain Socket IPC (sockaddr_un )
- libevent – 事件通知接口函数库
- 前段技术点
- iOS教程:Core Data数据持久性存储基础教程