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包含头文件路径是

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下的源文件安装相关推荐

  1. Linux centos6.5 64下oracle10g_静默安装完整版

    http://www.360doc.com/content/11/0116/09/2054285_86835998.shtml# oracle10g图形化界面安装全过程 --------------- ...

  2. linux yum 安装mysql_Linux下使用yum安装MySQL

    linux下使用yum安装mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list ...

  3. linux xfs yum,Redhat下XFS的安装

    一.XFS 简介及特性 XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的.那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在 ...

  4. linux c mysql安装_Linux下MySQL的安装

    Linux下MySQL的安装 MySQL安装 安装编译工具及文件 yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-deve ...

  5. linux ubuntu 12.04 下默认是安装了openjdk的

    ubuntu 12.04 下默认是安装了openjdk的,不过这个jdk问题比较多,因为你甚至无法启动Eclipse,所以还是需要自己安装jdk的. 1.下载jdk6 jdk6下载地址为:http:/ ...

  6. linux一键安装python_Linux下,一键安装python3;适用于Centos、Debian、Ubuntu等

    提示:如果官网是英文页面,建议使用谷歌浏览器能同步翻译页面.点击下载[谷歌浏览器最新绿色便携版] 注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态. 交流 ...

  7. nwjs sdk linux x64,Ubuntu环境下的nwjs安装及使用教程

    需求:通过nwjs实现一个可以全屏显示,防止用户退出浏览器的演示用app 一.安装Node.js sudo apt-get install nodejs sudo apt-get install np ...

  8. mysql window下 安装udf_Windows下MySQL下载安装、配置与使用

    用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至 ...

  9. unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a

    Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...

  10. 本地虚拟机上的docker安装mysql_linux下利用Docker安装mysql的步骤

    作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装 ...

最新文章

  1. python tcp不用循环监听_网络编程: TCP
  2. Binary Gap(二进制空白)
  3. 哈利波特检索_语料库ing说: 难怪哈利波特与混血王子那么好看
  4. 我花 1 分钟写了一段爬虫,帮助小姐姐解放了双手
  5. CodeIgniter模型
  6. 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统
  7. openwrt安装蒲公英_网速不给力?双宽带叠加,立马消除卡顿
  8. CTF工具-gdb简介
  9. 黑客SQL服务器入侵实战演习
  10. Redis五种数据结构及常用操作指令、Redis在JAVA中如何封装使用
  11. 简单说说Java SE、Java EE、Java ME三者之间的区别
  12. IDEA设置字体和背景颜色以及快捷键大全
  13. 制作QQ背景音乐链接
  14. java实验——回文是一种“从前向后读”和“从后向前读”都相同的字符串,如“上海自来水来自海上”。设计一个程序,判断字符串是否是回文。
  15. aardio - 仿安装界面进行窗口高度调节的方法
  16. 把我本科2年爬过的坑,送给高考完想要选计算机专业的你,成为人们眼中的大神吧
  17. org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  18. Springboot整合JavaMail通过阿里企业邮箱发验证码
  19. Win10自带邮件系统绑定腾讯企业邮箱
  20. 模型训练技巧:warmup学习率策略

热门文章

  1. 1005打印任务取消不了 hp_hp打印机无法取消打印的文档解决方法(最新整理)
  2. php 模拟登陆微信,PHP微信模拟登陆并给用户发送消息的方法
  3. 密西根州立大学计算机qs分数,密歇根州立大学2021年QS世界大学排名第157
  4. python使用ip地址定位_python实现ip地址查询经纬度定位详解
  5. 2022研究生数学建模ABCDEF思路
  6. matlab gz,MATLAB之single函数
  7. ele组件上传图片--图片更换功能
  8. 推荐一个Spring Cloud Alibaba 的代码生成器项目
  9. Python-根据文件名提取文件
  10. 动词变名词的变化规则_动词变名词的规则?(要求完整)