build
green369258
这个作者很懒,什么都没留下…
展开
-
EABI
交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(Float Point Architecture),而没有FPA的CPU,比如SAMSUNG S3C2410/S3C2440,会使用FPE(Float Point Emulation 即软浮点),这样在速度上就会遇到极大的限制,使用EABI(Embedded Application BinaryInterface)则可以对此改善处理,ARM EABI有许多革新之处,其中最突出的改进就是Float Point Performance,它使用Vecto原创 2010-06-29 23:13:00 · 625 阅读 · 0 评论 -
android-vlc for rtsp build OK
android-vlc for rtsp build OK原创 2014-06-16 11:14:01 · 1825 阅读 · 0 评论 -
gcc __attribute__ ((packed)) || __attribute__ ((aligned(4))) 2
此属性可以强制修改gcc的对齐方式 一般软件的2进制协议中,会定义一系列的规范,32位机一般会定义4字节对齐的协议,这样对于32位机来说速度是最快的。 最近发现gcc一个问题,在一个结构体包含unsignd long long (64位)类型时会导致结构体8字节对齐,且__attribute__ ((aligned(4))) 竟然无效 本例子用的x86原创 2012-06-26 21:37:37 · 4541 阅读 · 1 评论 -
gcc __attribute__ ((weak, alias (#name))) 1
本系列文章,着重讲__attribute__的用途 此属性,可以借助uClibc里面的弱符号来对库里符号进行一些更改,可以用于调试,我最近就用这个功能来调试system,很好用,类似可以实现hook函数的还有LD_PRELOAD,参见http://blog.csdn.net/green369258/article/details/7314298 uClibc原创 2012-06-23 21:37:07 · 4878 阅读 · 0 评论 -
gcc __attribute__ 引言
本文只针对gcc 对c语言编译 的一些选项进行讨论。 每个编译器都有自身的一些特性,gcc也不例外,当然要使用这些选项会导致代码的可移植性变差,当然这些新特性可以让编译器更好的了解你代码的意图,编译出更优秀的机器码,我把这些C标准之外的特性当作工具使用。__attribute__ 就是利器之一。 以下摘自Using the GNU Compiler Collection原创 2012-06-22 14:21:51 · 4069 阅读 · 0 评论 -
oprofile 使用之三(注意事项)
1.在文件系统\etc下创建符号链接 ln –sf /proc/mounts mtab 。同时确保文件系统中存在如下共享库:libdl.so.2、libstdc++.so.6、libm.so.6、libgcc_s.so.1、libc.so.6。2.由于Oprofile编译时采用的是绝对路径,在编译时设置的安装路径必须与嵌入式平台上运行时的路径一致。可以复制/mnt/oprofile/文件夹至S原创 2011-10-24 09:49:49 · 1302 阅读 · 0 评论 -
oprofile 使用之一(build)
最近公司作新项目,在老的板子上跑着感觉异常的沉重,arm1176运行我们的程序有点不堪重负,于是产生了强烈的优化想法。 老大给机会让我研究一下gprof && oprofile 一开始搞gprof的过程稍候会补上。 后来参加了一次hello gcc 的活动,那里那些作编译器的推荐使用oprofile,因为gprof只是针对应用层的分析,而oprofile是通过硬件(CPU)本身原创 2011-10-21 21:07:25 · 8120 阅读 · 0 评论 -
oprofile 使用之二(run 使用事件采样)
简介oprofile oprofile 是 Linux 平台上的一个功能强大的性能分析工具, 支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time based)。 基于事件的采样是oprofile只记录特定事件(比如L2 cache miss)的发生次数,当达到用户设定的 定值时oprofile 就记录一下(采一原创 2011-10-22 15:43:30 · 5032 阅读 · 0 评论 -
oprofile 使用之三(run 使用时间采样)
经历了上述的失败,只能走第2条路,时间采样。 1.修改opcontrol脚本加载驱动的参数,搜索modprobe oprofile 修改为 modprobe oprofile timer=1 2.pcontrol --init 插入oprofile.ko驱动 挂载oprofilefs 3. opcontrol --no-vmlinux --setup --sess原创 2011-10-24 09:19:19 · 2514 阅读 · 0 评论 -
build linux kernel error
zz-debian:~/work/kernel-study/linux-2.6.38.3# make-kpkg --append-to-version=green-linux kernel_image<br />exec debian/rules DEBIAN_REVISION=2.6.38.3green-linux-10.00.Custom APPEND_TO_VERSION=green-linux kernel_image <br />/usr/bin/make -f ./debian/r原创 2011-05-17 10:11:00 · 952 阅读 · 0 评论 -
install_gtkdev
GTK的安装apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置apt-get install devhelp #这将安装 devhelp GTK文档查看程序apt原创 2010-11-23 14:31:00 · 553 阅读 · 0 评论 -
交叉编译基本术语
在交叉编译中,三个术语非常重要:host,target,build host:toolchain要运行的目标机器 build:用来建立toolchain的机器 target:toolchain所创建的二进制代码可以运行的机器 最通常的情况是三者都是一样的,即host == build == target; 绝大多数交叉编译的情况是host == build,但是target不同原创 2010-06-24 19:54:00 · 718 阅读 · 0 评论 -
交叉编译路径设置问题
在交叉编译中我们都是在宿主机上编译完成东西后到目标板上运行,这恰恰引来了路径的问题。如果是一个单独的.so还好弄一些,直接拷贝到目标板根文件系统的我们所需要的位置后然后设置LD_LIBRARY_PATH指向该路径后,运行时程序就会搜索到需要的so即可运行但是如果一个.so需要靠某个路径来加载配置etc,这个事情就麻烦了,如果你想学习PC机的那种目录结构就会引来你交叉编译的程序和本机程序冲突的问题,不能覆盖安装,怎么办呢? 一种方法是装到另一个路径上去这样虽然会引起一些目录上的变动,但是是很方原创 2010-07-24 13:17:00 · 2331 阅读 · 0 评论 -
裁减freetype
嵌入式上的FLASH容量是有限的,而对某个库的使用功能上要求也是比较弱(即该库所有不必全部支持),故而有了裁减的概念。 最近我选用了freetype(version 2.3.9)进行字体处理和绘制,发现编译以后有1.8M之大,而网上搜索别人的库只有130K,于是开始用configure脚本进行一次有一次的尝试,在基本上尝试完了所有的编译选项后,发现1.8M的容量确实基本上没有减少,于是开始查看像ChangeLog,Readme,INSTALL等等文件,在docs/INSTALL原创 2010-07-03 19:41:00 · 1291 阅读 · 0 评论 -
编译VIM+GDB
最近一直使用VIM,感觉异常的强大,有些地方虽然不如VC或者SLICKEDIT强,但是这恰恰给了人脑子记忆东西的空间,感觉非常好。 以前一直用printf进行软件调试,多线程调试起来相当不错,最近像学习一下开源软件,使用GDB进行代码跟踪,于是在网上搜索了一下,发现VIM一样可以集成GDB,进行调试,于是开始了VIM+GDB的安装过程,如下首先下载VIM和VIMGDB patch,解压开,然后查看了VIMGDB的INSTALL说明文档,patch -d vim72 --backup -p0原创 2010-07-04 16:43:00 · 2670 阅读 · 0 评论 -
Docker
ubuntu 编译aosp必备 不过大家也知道ubuntu 桌面一直稳定性比较弱 之前一直使用debian 稳定性还是很高的,基本上可以一年开两次机器,一次开半年!随着android 版本的不断增多,一个单一的ubuntu 14.04也不足一满足所有的android 版本编译 你仍然需要在openjdk 7\openjdk 8\jdk 6\jdk 7几个版本不断切换,带来了很多的不确定性 直原创 2017-07-21 18:08:12 · 233 阅读 · 0 评论