一些库在各个项目经常重用.如jpeg,freetype,iconv 等.每次大型项目均会反复重用.因此按照原来项目规范,一般都放在项目libs目录下,但后来发现,每个项目都做重复操作.也完全没有必要.
2011-09-21 11:34
381 查看
一些库在各个项目经常重用.如jpeg,freetype,iconv
等.每次大型项目均会反复重用.因此按照原来项目规范,一般都放在项目libs目录下,但后来发现,每个项目都做重复操作.也完全没有必要.因为现在是将其归纲到一个comm_lib公用信息.
以下是常用库的ARM-Linux移植,我是放在/home/hxy/common_lib
目录下.按到移植规范,输出在 output/arm-linux下,库本身在
libs 下面.
以下是常见库的移植.在这里留作教学和备份用.
通用类
1.zlib库移植
下载
解压 tar xvzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
生成Makefile(注意zlib只能静态,动态分开编译,因此要生成两次Makefile和两次编译和安装)
生成静态库 CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar rc" RANLIB=arm-linux-ranlib ./configure --prefix=$PWD/../../output/arm-linux
生成动态库 CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar rc" RANLIB=arm-linux-ranlib ./configure
--shared --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
图像类
1.jpeg库,用于jpeg图像处理
ftp://ftp.nz.debian.org/gentoo/distfiles/jpegsrc.v6b.tar.gz
解压 tar xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
生成Makefile
CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar" RANLIB="arm-linux-ranlib" STRIP="arm-linux-strip" ./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux
--enable-shared --enable-static
上述方法只会成功一次。因此正确的方法
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-shared --enable-static
然后在生成Makefile 里把CC,AR,AR2,STRIP改成arm-linux-gcc版本
编译 make
mkdir -p $PWD/../../output/arm-linux/man/man1
安装 make install
注意这个库的安装程序有BUG,不会自动创建发布的lib,include,man等,因此要手工创建,要不先把其它库做好,再安装这个库
mkdir -p /home/hxy/common_lib/output/arm-linux/include
mkdir -p /home/hxy/common_lib/output/arm-linux/lib
mkdir -p /home/hxy/common_lib/output/arm-linux/man/man1
2.png 用于PNG图像显示
主页http://www.libpng.org/
下载http://prdownloads.sourceforge.net/libpng/libpng-1.4.1.tar.gz?download
解压 tar xvjf libpng-1.2.19.tar.bz2
cd libpng-1.2.19
生成Makefile
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
3.tiff库 ,(tiff格式显示)
官网 http://www.libtiff.org
下载 http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz
解压 tar xvzf tiff-3.8.2.tar.gz
cd tiff-3.8.2
生成makefile
./configure --host=arm-linux --enable-shared --enable-static --enable-jpeg --enable-zlib --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
音频类
2.mad
官网 http://www.underbit.com/products/mad/
解压 tar xvzf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
生成Makefile(标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
去掉Makefile中-fforce-mem
因为arm-linux-gcc不认识这个选项,编译提示
error: unrecognized command line option "-fforce-mem"
编译make
安装 make install
3.id3tag:读取mp3信息
官网 http://www.underbit.com/products/mad/
解压 tar xvzf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b
生成Makefile(标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
4.ogg
一种音频解码格式
解压 tar xvzf libogg-1.1.4.tar.gz
cd libogg-1.1.4
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
5.flac 移植
解压 tar xvf flac-1.2.1.tar.gz
cd flac-1.2.1
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
修改源码 examples/cpp/encode/file/main.cpp,增加 #include <string.h>
编译make
安装 make install
文字编码类
1.iconv库 用于文字编码转换
主页 :http://www.gnu.org/software/libiconv
下载:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
解压 tar xvzf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
2. freetype:开源高质理字体显示函数库
主页:http://www.freetype.org/
下载:http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.11.tar.gz
解压 tar xvzf freetype-2.3.11.tar.gz
cd freetype-2.3.11
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
等.每次大型项目均会反复重用.因此按照原来项目规范,一般都放在项目libs目录下,但后来发现,每个项目都做重复操作.也完全没有必要.因为现在是将其归纲到一个comm_lib公用信息.
以下是常用库的ARM-Linux移植,我是放在/home/hxy/common_lib
目录下.按到移植规范,输出在 output/arm-linux下,库本身在
libs 下面.
以下是常见库的移植.在这里留作教学和备份用.
通用类
1.zlib库移植
下载
解压 tar xvzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
生成Makefile(注意zlib只能静态,动态分开编译,因此要生成两次Makefile和两次编译和安装)
生成静态库 CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar rc" RANLIB=arm-linux-ranlib ./configure --prefix=$PWD/../../output/arm-linux
生成动态库 CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar rc" RANLIB=arm-linux-ranlib ./configure
--shared --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
图像类
1.jpeg库,用于jpeg图像处理
ftp://ftp.nz.debian.org/gentoo/distfiles/jpegsrc.v6b.tar.gz
解压 tar xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
生成Makefile
CC=arm-linux-gcc CPP="arm-linux-gcc -E" AR="arm-linux-ar" RANLIB="arm-linux-ranlib" STRIP="arm-linux-strip" ./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux
--enable-shared --enable-static
上述方法只会成功一次。因此正确的方法
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-shared --enable-static
然后在生成Makefile 里把CC,AR,AR2,STRIP改成arm-linux-gcc版本
编译 make
mkdir -p $PWD/../../output/arm-linux/man/man1
安装 make install
注意这个库的安装程序有BUG,不会自动创建发布的lib,include,man等,因此要手工创建,要不先把其它库做好,再安装这个库
mkdir -p /home/hxy/common_lib/output/arm-linux/include
mkdir -p /home/hxy/common_lib/output/arm-linux/lib
mkdir -p /home/hxy/common_lib/output/arm-linux/man/man1
2.png 用于PNG图像显示
主页http://www.libpng.org/
下载http://prdownloads.sourceforge.net/libpng/libpng-1.4.1.tar.gz?download
解压 tar xvjf libpng-1.2.19.tar.bz2
cd libpng-1.2.19
生成Makefile
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
3.tiff库 ,(tiff格式显示)
官网 http://www.libtiff.org
下载 http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz
解压 tar xvzf tiff-3.8.2.tar.gz
cd tiff-3.8.2
生成makefile
./configure --host=arm-linux --enable-shared --enable-static --enable-jpeg --enable-zlib --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
音频类
2.mad
官网 http://www.underbit.com/products/mad/
解压 tar xvzf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
生成Makefile(标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
去掉Makefile中-fforce-mem
因为arm-linux-gcc不认识这个选项,编译提示
error: unrecognized command line option "-fforce-mem"
编译make
安装 make install
3.id3tag:读取mp3信息
官网 http://www.underbit.com/products/mad/
解压 tar xvzf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b
生成Makefile(标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译 make
安装 make install
4.ogg
一种音频解码格式
解压 tar xvzf libogg-1.1.4.tar.gz
cd libogg-1.1.4
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
5.flac 移植
解压 tar xvf flac-1.2.1.tar.gz
cd flac-1.2.1
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
修改源码 examples/cpp/encode/file/main.cpp,增加 #include <string.h>
编译make
安装 make install
文字编码类
1.iconv库 用于文字编码转换
主页 :http://www.gnu.org/software/libiconv
下载:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
解压 tar xvzf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
2. freetype:开源高质理字体显示函数库
主页:http://www.freetype.org/
下载:http://ftp.twaren.net/Unix/NonGNU/freetype/freetype-2.3.11.tar.gz
解压 tar xvzf freetype-2.3.11.tar.gz
cd freetype-2.3.11
生成Makefile (标准)
./configure --host=arm-linux --enable-shared --enable-static --prefix=$PWD/../../output/arm-linux
编译make
安装 make install
相关文章推荐
- 莫名其妙的出现这个错,看了logcat 说是什么二进制xml错误啥的。。。 不过后来发现,这个一般都是给eclipse项目中添加图片等资源时出现的一些bug,看似添加到项目中,其实没有,或
- 计算机视觉中经常需要识别或者定位某些几何图形,比如直线、圆、椭圆,还有其他一些图形。检测直线的霍夫变换提供了在图像中寻找直线的一种算法,是最简单的一种情形,后来发展到检测圆、椭圆、还有一般图形的霍夫变
- 完全没有基础的安装android studio及导入项目中出现的一些问题
- tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空
- 安装MYSQL遇到的问题后来无意发现是卸载的时候没有卸载完全导致,下面给出完整的卸载MySQL 5.1的卸载方法: 1、控制面板里的增加删除程序内进行删除 2、删除MySQL文件夹下的
- BuildZipper——给c#项目添加postbuildevent,每次build完把build结果做个zip放在solution目录。
- tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空
- mac 删除文件 提示不能完成此操作,因为您没有权限访问一些项目
- HTTP协议中的短轮询、长轮询、长连接和短连接 序言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太
- MAC 出现 不能完成此操作,因为您没有权限访问一些项目 解决方法
- mfc对话框程序在ide编译可运行,但编译完毕的debug和release版本不能运行。。后来发现原因是:用到的sqlite数据库文件没在对应目录下,而代码中没有try..catch..
- 在 Visual Studio 生成项目时,会发现一些 dll 并没有被复制到输出目录,导致最终程序的执行错误
- hdu 3551 Hard Problem 一般图最大匹配+给出一个无向图,存在重边,没有自环。问能否删除一些边,使得每个顶点的度数为指定度数
- 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用
- androidstudio3.0使用的时候想导入包却发现没有libs目录
- Dcook -> MJRefresh iOS10的系统上每次下拉刷新后没办法完全恢复Normal 状态 Y轴距离上总是相差20左右...(楼主个人也使用的MJ,表示暂时没有发现这个问题)
- 想在每个文件头部加一些关于该文件的信息,如作者,创建时间,用途等,大家一般是怎么操作的?
- 【codeforces 274B】【树形DP】 B. Zero Tree【一棵树,每个点有权值,每次操作可以对一个联通子集中的点全部加或者减1,且每次操作必须包含点1,问最少多少次操作权值全为0】
- 一般web典型的项目目录结构
- 新建maven项目时没有出现src/main/java和src/test/java目录的解决方法