当前搜索:

【Bash百宝箱】从Android.mk到Android.bp

最近更新了Android Nougat源码,无意间发现Android的编译系统已经发生了巨大改变,到处是“Android.bp”文件,下面就来看一下这个bp文件到底是何方神圣。首先从Soong说起,Soong是Android中对基于GNU make的编译系统的替代物,编译文件“Android.mk”被替换为“Android.bp”。bp文件的目的就是一切从简,格式类似于JSON,像mk文件的条件控制...
阅读(6788) 评论(0)

【Bash百宝箱】gcc命令

GCC即GNU Compiler Collection,GNU编译套件,支持C、C++等多种语言。在使用GCC的时候,我们必须给出一系列必要的参数选项和文件名称。参数选项分几类,包括总体选项、语言选项、预处理选项、汇编选项、链接选项、目录选项、警告选项、调试选项、优化选项、目标选项、机器相关选项、代码生成选项等。1、下面介绍一些最基本、最常用的选项。 gcc [-c|-S|-E] [-s...
阅读(683) 评论(0)

【Bash百宝箱】GNU make命令

GNU make命令格式如下:make [ -f makefile ] [ options ] ... [ targets ] ...make命令各选项的作用如下:“-b”:同“-m”。“-m”:为了其它版本的make兼容性,这个选项被忽略。“-B”:同“–always-make”,无条件编译所有目标。“-C dir”:同“–directory=dir”,在读取makefile文件或者做其它事情之前...
阅读(576) 评论(0)

【Linux】LD_PRELOAD用法

LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。程序中我们经常要调用一些外部库的函数,以malloc为例,如果我们有个自定义的malloc函数,把它编译成动态库后,通过LD_PRELOAD加载,当程序中调用malloc函数时,调用的...
阅读(6365) 评论(0)

【Linux】使用__wrap_malloc查看内存使用

说起C/C++程序,一个老生常谈的问题便是内存分配,而这也是一个难点。在大型的软件开发项目中,常会遇到较大的常驻内存、内存泄露、内存破坏等问题,这些问题往往都是致命的。于是我们就借助于一些内存检测工具、API或者是某种技术手段,来动态地跟踪内存分配,查看内存使用细节,方法很多,各有利弊,GNU链接器就提供了一个好用的方法:–wrap=symbol函数名为“__wrap_symbol”,且称其为包装函...
阅读(1639) 评论(0)

【Bash百宝箱】Makefile快速入门

一、读懂Makefile1、Makefile简介简单来说,Makefile就是帮助我们编译工程并生成可执行文件。现在的IDE基本上都做了Makefile的事情,并不需要我们自己去手动编写Makefile,但是在Linux环境下,对于一个大型工程,我们常常要定制自己的编译规则,要编译哪些文件,该如何编译,通过Makefile就可以搞定。有了Makefile,只需要执行一个简单的make命令,即可实现自...
阅读(1230) 评论(0)

【Bash百宝箱】gcc编译规则

GCC即GNU Compiler Collection,GNU编译器套件,包括C/C++等多种语言。在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。 1、下面介绍一些最基本、最常用的参数。 GCC最基本的用法是:gcc [options] 其中,options就是编译器所需要的参数,filenames给出相关的文件名称。 -E,让编译器在预处理后停止,并输出预处理器...
阅读(996) 评论(0)
    个人资料
    • 访问:326444次
    • 积分:6057
    • 等级:
    • 排名:第4703名
    • 原创:257篇
    • 转载:0篇
    • 译文:5篇
    • 评论:45条
    Make Others Better.
    博客专栏
    文章分类