linux源文件安装,Linux下的源文件安装
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下的源文件安装相关推荐
- Linux centos6.5 64下oracle10g_静默安装完整版
http://www.360doc.com/content/11/0116/09/2054285_86835998.shtml# oracle10g图形化界面安装全过程 --------------- ...
- linux yum 安装mysql_Linux下使用yum安装MySQL
linux下使用yum安装mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list ...
- linux xfs yum,Redhat下XFS的安装
一.XFS 简介及特性 XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的.那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在 ...
- linux c mysql安装_Linux下MySQL的安装
Linux下MySQL的安装 MySQL安装 安装编译工具及文件 yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-deve ...
- linux ubuntu 12.04 下默认是安装了openjdk的
ubuntu 12.04 下默认是安装了openjdk的,不过这个jdk问题比较多,因为你甚至无法启动Eclipse,所以还是需要自己安装jdk的. 1.下载jdk6 jdk6下载地址为:http:/ ...
- linux一键安装python_Linux下,一键安装python3;适用于Centos、Debian、Ubuntu等
提示:如果官网是英文页面,建议使用谷歌浏览器能同步翻译页面.点击下载[谷歌浏览器最新绿色便携版] 注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态. 交流 ...
- nwjs sdk linux x64,Ubuntu环境下的nwjs安装及使用教程
需求:通过nwjs实现一个可以全屏显示,防止用户退出浏览器的演示用app 一.安装Node.js sudo apt-get install nodejs sudo apt-get install np ...
- mysql window下 安装udf_Windows下MySQL下载安装、配置与使用
用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至 ...
- unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a
Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...
- 本地虚拟机上的docker安装mysql_linux下利用Docker安装mysql的步骤
作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装 ...
最新文章
- python tcp不用循环监听_网络编程: TCP
- Binary Gap(二进制空白)
- 哈利波特检索_语料库ing说: 难怪哈利波特与混血王子那么好看
- 我花 1 分钟写了一段爬虫,帮助小姐姐解放了双手
- CodeIgniter模型
- 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统
- openwrt安装蒲公英_网速不给力?双宽带叠加,立马消除卡顿
- CTF工具-gdb简介
- 黑客SQL服务器入侵实战演习
- Redis五种数据结构及常用操作指令、Redis在JAVA中如何封装使用
- 简单说说Java SE、Java EE、Java ME三者之间的区别
- IDEA设置字体和背景颜色以及快捷键大全
- 制作QQ背景音乐链接
- java实验——回文是一种“从前向后读”和“从后向前读”都相同的字符串,如“上海自来水来自海上”。设计一个程序,判断字符串是否是回文。
- aardio - 仿安装界面进行窗口高度调节的方法
- 把我本科2年爬过的坑,送给高考完想要选计算机专业的你,成为人们眼中的大神吧
- org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
- Springboot整合JavaMail通过阿里企业邮箱发验证码
- Win10自带邮件系统绑定腾讯企业邮箱
- 模型训练技巧:warmup学习率策略
热门文章
- 1005打印任务取消不了 hp_hp打印机无法取消打印的文档解决方法(最新整理)
- php 模拟登陆微信,PHP微信模拟登陆并给用户发送消息的方法
- 密西根州立大学计算机qs分数,密歇根州立大学2021年QS世界大学排名第157
- python使用ip地址定位_python实现ip地址查询经纬度定位详解
- 2022研究生数学建模ABCDEF思路
- matlab gz,MATLAB之single函数
- ele组件上传图片--图片更换功能
- 推荐一个Spring Cloud Alibaba 的代码生成器项目
- Python-根据文件名提取文件
- 动词变名词的变化规则_动词变名词的规则?(要求完整)