obj文件

Android文件系统编译出错记录

笑着哭i 提交于 2020-03-01 01:28:39
错误1: 注意:external/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 注意:external/protobuf/java/src/main/java/com/google/protobuf/micro/CodedInputStreamMicro.java 使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。 Generated: (out/target/product/generic/android-info.txt) host C: acp <= build/tools/acp/acp.c host C++: libhost <= build/libs/host/pseudolocalize.cpp host C: libhost <= build/libs/host/CopyFile.c <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用] <built-in>:0:0: 附注: 这是先前定义的位置 <命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义

DECLARE_META_INTERFACE(INTERFACE)和IMPLEMENT_META_INTERFACE(INTERFACE, NAME)宏定义分析

给你一囗甜甜゛ 提交于 2020-02-28 14:19:33
这里讲的两个宏定义是IPC中鼎鼎大名的 DECLARE_META_INTERFACE(INTERFACE) IMPLEMENT_META_INTERFACE(INTERFACE, NAME) 定义 frameworks\base\include\utils\IInterface.h # define DECLARE_META_INTERFACE ( INTERFACE ) \ static const String16 descriptor ; \ static sp < I # # INTERFACE > asInterface ( const sp < IBinder > & obj ) ; \ virtual String16 getInterfaceDescriptor ( ) const ; \ # define IMPLEMENT_META_INTERFACE ( INTERFACE , NAME ) \ const String16 I # # INTERFACE : : descriptor ( NAME ) ; \ String16 I # # INTERFACE : : getInterfaceDescriptor ( ) const { \ return I # # INTERFACE : : descriptor ; \ } \ sp < I # #

类的特殊成员&反射&异常处理

岁酱吖の 提交于 2020-02-28 10:32:10
类的特殊成员 1.__doc__表示类的描述信息 class Foo(object): """ 描述类信息,这是用于看片的神奇 """ def func(self): pass print(Foo.__doc__) #输出:描述类信息,这是用于看片的神奇 2.__module__和 class module 表示当前操作的对象在那个模块 class 表示当前操作的对象的类是什么 class C(): def __init__(self): self.name = 'wupeiqi' from lib.aa import C obj = C() print(obj.__module__) # 输出lib.aa,即:输出模块 print(obj.__class__) # 输出 lib.aa.C,即:输出类 3.__init__构造方法,通过类创建对象时,自动触发执行 4.__del__ 析构方法,当对象在内存中被释放时,自动触发执行 5.__call__ 对象后面加括号,触发执行。 class Foo(object): def __init__(self): print("i am init") def __call__(self, *args, **kwargs): print("i am call") obj=Foo() #执行__init__ obj() #执行__call__

一个通用的Makefile

僤鯓⒐⒋嵵緔 提交于 2020-02-28 09:44:39
一 makefile的作用 Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中记录有文件的信 息,在make时会决定在链接的时候需要重新编译哪些文件。 Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件 。当那些依赖文件有了改变,编译器会自动发现最终的生成文件已经过时,而应该重新编译相应的模块。 makefile带来的好处就是—"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。默认的情况下,make命令会在当前目录下按顺序找寻文件名为"GNUmakefile"、"makefile"、"Makefile"的文件,找到了解释这个文件。当然也可以使用make -f DIR/makefile 来指定用于makefile文件 二 makefile语法简述 2.1 makefile规则 target ... : dependencies ... command target目标文件,可以是Object File,也可以是执行文件,还可以是一个标签 dependencies就是,要生成那个target所需要的文件或是目标。 command也就是make需要执行的命令。(任意的Shell命令,可以有若干行)

uboot makefile整体解析

故事扮演 提交于 2020-02-27 09:31:28
uboot的源文件众多,学习庞然大物首先找到脊椎--顶层的makfile,逐一破解。但是,uboot的makefile同样是一个庞然大物,所以也要找到它的主线。倘若过分专注部分细节,很难做到把握全局,实际上也不可能很好理解细节。 介于此,笔者已经写了一篇 uboot makefile整体解析 ,可以先从主体上把握makefile。然后,再读这篇makefile强大功能实现的细节,才能做到循序渐进。 说明:uboot顶层makefile的注释机会全部源码都搬上来了,而注释都是黑体加粗以与源码有强烈的区别。 VERSION = 1 //主版本号 PATCHLEVEL = 1 //次级版本号 SUBLEVEL = 6 EXTRAVERSION = //版本号扩展 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) //这个Uboot的版本为1.1.6 VERSION_FILE = $(obj)include/version_autogenerated.h //生成uboot的版本信息 HOSTARCH := $(shell uname -m | \ sed -e s/i.86/i386/ \ -e s/sun4u/sparc64/ \ -e s/arm.*/arm/ \ -e s/sa110/arm/

面向对象

大兔子大兔子 提交于 2020-02-26 21:02:40
面向对象三大特征 封装 多态 继承 类 对象 单继承 super 类的约束 异常处理 类的私有成员 属性 反射 isinstance和issubclass type 双下方法 面向对象(类)三大特征 封装 指函数,模块,类,对象等,将一些数据或者内容封装到一个空间 , 可以调用 多态 指一种事物多种形态 python 默认支持多态(变量可以指向任意数据类型) 同⼀个变量a可以是多种形态。鸭子类型 :两个类中有相同的方法 , 继承 指子类(子类的对象)可以调用父类(基类)的属性与方法 鸭子类型:看着像鸭子就是鸭子.,A,B完全没有耦合性,但是某种意义上形成了一种标准. 类 优点: 1,类是相似功能的集合体,组织结构更清晰 2,拥有上帝的思维,制作一个公共模板. 从类名的角度分析: 1, 类名查看类中所有的属性 Human.__dict__ 2, 类名操作单独属性. 万能的. 查:Human.mind 增:Human.emotion = '有情感' 改: Human.mind = '无脑' 删:del Human.mind 类名调用方法(不推荐使用). __init__里面不能有return 对象 : 类名+()就是实例化对象 三步: a,在内存中开辟一个对象空间. b,自动执行__init__方法,将对象空间传给self c,执行__init__方法,给对象空间封装属性. 对象

python选课系统作业

最后都变了- 提交于 2020-02-24 19:47:11
# 选课系统# 角色:学校、学员、课程、讲师# 要求:# 1. 创建北京、上海 2 所学校# 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开# 3. 课程包含,周期,价格,通过学校创建课程# 4. 通过学校创建班级, 班级关联课程、讲师# 5. 创建学员时,选择学校,关联班级# 5. 创建讲师角色时要关联学校,# 6. 提供两个角色接口 # 6.1 学员视图, 可以登录,注册, 选择学校,选择课程,查看成绩 # 6.2 讲师视图, 讲师登录,选择学校,选择课程, 查看课程下学员列表 , 修改所管理的学员的成绩 # 6.3 管理视图,登录,注册,创建讲师, 创建班级,创建课程,创建学校# 7. 上面的操作产生的数据都通过pickle序列化保存到文件里分析:角色: 管理员: 注册 登录 创建校区 创建老师 创建课程 老师: 登录 选择教授课程 查看课程下学生 修改学生的成绩 学生: 注册 登录 选择校区 选择课程 查看成绩类: 抽出共有属性方法:Base 学校:School 学员:Student 课程:Course 讲师:Teacher各个类属性和方法:Base: 公用方法: 存数据:save 取数据:select学校: 属性: 学校名字:school_name str 学校地址:school_addr str 开设的课程

linux kernel make构建分析

对着背影说爱祢 提交于 2020-02-23 05:17:10
前言 之前对uboot的构建进行了分析,现在再对linux kernel的构建进行分析。几年前的确也分析过,但是只是停留在笔记层面,没有转为文章,这次下定决定来完善它。 环境 同样,采用的还是zynq平台的linux,从Makefile可以看到版本: VERSION = 3 PATCHLEVEL = 15 SUBLEVEL = 0 EXTRAVERSION = NAME = Shuffling Zombie Juror linux Makefile支持的选项(最常用到的) 选项V,用于开启或者关闭执行make时编译信息的打印 @echo ' make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build' @echo ' make V=2 [targets] 2 => give reason for rebuild of target' ifeq ("$(origin V)", "command line") KBUILD_VERBOSE = $(V) endif ifndef KBUILD_VERBOSE KBUILD_VERBOSE = 0 endif 选项C,用于开启或者关闭静态代码检查 @echo ' make C=1 [targets] Check all c source with $$CHECK

三、编译第一步 make xxx_defconfig——Makefile.build 脚本

我的未来我决定 提交于 2020-02-23 05:15:48
3.1 上章分析回顾 3.1 上章分析出的参数 3.1.1 变量 MAKECMDGOALS = xxx_defconfig KBUILD_EXTMOD = version_h := include/generated/version_autogenerated.h timestamp_h := include/generated/timestamp_autogenerated.h no-dot-config-targets := clean clobber mrproper distclean help %docs check% coccicheck ubootversion backup tests config-targets := 1 mixed-targets := 0 dot-config := 1 KBUILD_SRC = build := -f ./scripts/Makefile.build obj 3.1.2 环境变量 KBUILD_DEFCONFIG := sandbox_defconfig KBUILD_KCONFIG = 3.1.3 需要进行分析的地方 (1)scripts_basic 目标执行的命令   make -f ./scripts/Makefile.build obj=scripts/basic (2)%config 目标执行的命令   make

前端面试题(亲身面试经验)

南楼画角 提交于 2020-02-22 14:43:55
  最近面试了一些公司,趁着疫情期间,总结一波。大家可以看看 会有用的。 webpack 1、webpack中entry和output的作用 webpack中的entry标记入口文件,它可以是一个字符串(单入口)或者一个数组(多入口),output用来标记输出,主要有两个属性 path和 filename。其次就是publicPath 和chunkFileName 2、webpack中loader和plugin的作用 loader 用于加载某些资源文件。 因为webpack 本身只能打包commonjs规范的js文件,对于其他资源例如 css,图片,或者其他的语法集,比如 jsx, coffee,是没有办法加载的。 这就需要对应的loader将资源转化,加载进来。loader是用于加载的,它作用于一个个文件上。 plugin 用于扩展webpack的功能。它直接作用于 webpack,扩展了它的功能。当然loader也是变相的扩展了 webpack ,但是它只专注于转化文件。而plugin的功能更加的丰富,而不仅局限于资源的加载。 3、webpack中可以有哪些优化 1、优化Loader的文件搜索范围,指定include、exclude 2、把Babel编译过的文件缓存起来 loader: 'babel-loader?cacheDirectory=ture' 3、懒加载、按需加载