
编译
qwaszx523
努力成长的小菜鸟
展开
-
Android编译过程详解(二)
转自http://www.cnblogs.com/mr-raptor/archive/2012/06/08/2541571.html通过上篇文章,我们分析了编译android时source build/envsetup.sh和lunch命令,在执行完上述两个命令后, 我们就可以进行编译android了。 1. make 执行make命令的结果就是去执行当前目录下的Makefil转载 2016-08-31 20:43:25 · 888 阅读 · 0 评论 -
GCC的常识
转自http://www.linuxidc.com/Linux/2014-11/109126.htm 1、 gcc的全称: GNU C Compiler ,是GNU的一款编译器 2、 gcc通过后缀名来区别输入文件的类型; 常用文件类型:. c C语言源代码文件 .C/.cc C++源代码文件 .h转载 2017-02-22 14:45:50 · 328 阅读 · 0 评论 -
GCC编译流程和常用选项
转自http://www.w2bc.com/Article/14481GCC编译器(GNU C Compiler)是GNU组织的一款开源 编译器,它是Linux环境下的默认C语言编译器。它处理能够高效的编译C语言以外,还可以编译其他语言。并且,现在的GCC已经不光包括编译器本身,还包含了编译过程中的工具链。 1 GCC编译流程在学习使用GCC编译程序之前,首先要知道编译原创 2017-02-22 14:54:33 · 453 阅读 · 0 评论 -
Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解
转自http://www.linuxidc.com/Linux/2013-06/85902.htmLinux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 交叉编译器版本:arm-linux-gcc-4.4.3 交叉编译器下载 见这篇文章http://www.linuxidc.com/Linux/2011-05/35906.htm安装前的絮叨首先简单介绍一转载 2017-02-22 15:13:13 · 447 阅读 · 0 评论 -
Ubuntu 12.10安装交叉编译器arm-none-linux-gnueabi-gcc
转自http://www.linuxidc.com/Linux/2013-03/82016.htm1.下载 arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2cp arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /usr/loc转载 2017-02-22 15:15:08 · 481 阅读 · 0 评论 -
linux程序源码编译安装
转自1.安装基本步骤1. ./configure 建立Makefile文件2. make clean 删除目标文件3. make 根据 Makefile进行编译。 生成可执行文件,可执行文件放在当前目录,尚未被安装到预定安装目录中。4. make install 会根据Makefile中的 ins转载 2017-02-22 15:57:59 · 323 阅读 · 0 评论 -
Linux程序源码编译安装的configure配置详解
转自http://blog.sina.com.cn/s/blog_4fcd1ea30100un12.html Linux环境下,如果通过源代码编译安装程序的简单过程可以描述为: ./configure-->make-->make install。 其中./configure配置脚本功能就是对你的系统做很多的测试,以转载 2017-02-22 16:06:00 · 1582 阅读 · 0 评论 -
编译选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include,-I指定头文件的路径。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到原创 2017-02-22 16:29:49 · 4023 阅读 · 1 评论 -
执行应用程序出现: No such file or directory
转自http://blog.youkuaiyun.com/kenny_wju/article/details/17629073最近在移植opencv2.0的时候遇到该问题,工作环境如下:宿主机:ubuntu9.04 kernel 2.6.28 arm-none-Linux-4.3.2开发板:OMAP4 ubuntu12.04 桌面版 gcc version 4.6.3 (Ubuntu/L转载 2017-02-22 16:42:09 · 10940 阅读 · 0 评论 -
readelf以及读取canconfig需要的库
readelf 用来显示 ELF 格式文件信息,该命令选项很多,其中 -a 选项可以用来显示 ELF 文件的所有信息。另外编译器下也有一个查看elf文件信息的可执行程序, 比如arm-linux-gnueabihf-readelf原创 2017-02-22 16:52:08 · 440 阅读 · 0 评论 -
include/generated/autoconf.h
执行make menuconfig后,编译系统会把所有的配置信息保存到源码顶层目录下的.config文件中,然后将.config中的内容转换为C语言能识别的宏定义更新到include/generated目录下的autoconf.h文件中。比如会将CONFIG_XXX =y的定义转换为#define CONFIG_XXX 1的模式写到autoconf.h文件当中。autoconf.h文件是被自动包含原创 2017-03-15 18:54:52 · 5066 阅读 · 0 评论 -
Kconfig
在linux中和编译有关的配置文件有:makefile:Kconfig:.config:全局的配置文件,由它决定makefile来编译哪些文件,一般是自动生成。 在实际判断使用哪些配置选项时,不会直接修改.config文件,而且通过使用图形化界面(menuconfig)来配置内核,并把配置的结果保存成.config文件。在编译内核时,就根据makefile和.c转载 2017-04-11 12:09:00 · 549 阅读 · 0 评论 -
unknown target 'mrproper'
make命令需要在Android源码根目录下执行,如果在其它目录执行了,需要重新配置编译环境(即source、lunch),然后再make。原创 2017-04-28 16:07:51 · 1663 阅读 · 0 评论 -
LOCAL_MODULE_TAGS指定模块的编译类型
名称说明eng默认类型,该编译类型适用于开发阶段。当选择这种类型时,编译结果将:安装包含 eng, debug, user,development 标签的模块安装所有没有标签的非 APK 模块安装所有产品定义文件中指定的 APK 模块user该编译类型适合用于最终发布阶段。当选择这种类型原创 2016-09-01 14:19:38 · 829 阅读 · 0 评论 -
高通平台defconfig文件的确定
(1)命令执行追溯Source build/envsetup.sh执行envsetup.sh脚本,把(TARGET_DEVICE)/BoardConfig.mk包含了进来:build/envsetup.sh:function gettop{ local TOPFILE=build/core/envsetup.mk ................}原创 2017-05-08 17:31:18 · 4703 阅读 · 0 评论 -
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
转自http://www.veryarm.com/296.html目录命名规则 实例1、arm-none-eabi-gcc2、arm-none-linux-gnueabi-gcc3、arm-eabi-gcc4、armcc5、arm-none-uclinuxeabi-gcc 和 arm-none-symbianelf-gccCodeso转载 2017-02-22 14:32:04 · 433 阅读 · 0 评论 -
LOCAL_MODULE_RELATIVE_PATH
LOCAL_PATH := $(call my-dir)# HAL module implemenation stored in# hw/..soinclude $(CLEAR_VARS)include $(LOCAL_PATH)/../common.mkLOCAL_STATIC_LIBRARIES += libbufimport libhwcbaseLOCAL_S原创 2016-10-19 20:28:59 · 5679 阅读 · 0 评论 -
Android编译过程详解(一)
转自http://blog.youkuaiyun.com/benico/article/details/17797881google给出的编译步骤如下: 1、 sourcebuild/envsetup.sh:加载命令 2、 lunch:选择平台编译选项 3、make:执行编译下面按照编译步骤来分析编译过程的细节一、source build/envsetup.sh将env转载 2016-08-31 19:53:38 · 450 阅读 · 0 评论 -
Android编译过程详解(三)
转自http://www.cnblogs.com/mr-raptor/archive/2012/06/12/2547030.html1. build/core/config.mk109 # --------------------------------------------------------------- 110 # Define most of th转载 2016-08-31 20:45:43 · 318 阅读 · 0 评论 -
Android build system & Android.mk 规范
转自http://www.cnblogs.com/yaozhongxiao/archive/2012/03/06/2382362.html#top1. Android编译系统分析 --- 系统变量解析 LOCAL_PATH - 编译时的目录 LOCAL_MODULE - 编转载 2016-09-01 09:57:01 · 324 阅读 · 0 评论 -
模块编译方式
Android 源码中包含了许多的模块,模块的类型有很多种,例如:Java 库,C/C++ 库,APK 应用,以及可执行文件等 。并且,Java 或者 C/C++ 库还可以分为静态的或者动态的,库或可执行文件既可能是针对设备(本文的“设备”指的是 Android 系统将被安装的设备,例如某个型号的手机或平板)的也可能是针对主机(本文的“主机”指的是开发 Android 系统的机器,例如装有转载 2016-09-01 14:21:15 · 546 阅读 · 0 评论 -
Make 文件说明
整个 Build 系统的入口文件是源码树根目录下名称为“Makefile”的文件,当在源代码根目录上调用 make 命令时,make 命令首先将读取该文件。Makefile 文件的内容只有一行:“include build/core/main.mk”。该行代码的作用很明显:包含 build/core/main.mk 文件。在 main.mk 文件中又会包含其他的文件,其他文件中又会转载 2016-09-01 14:22:35 · 380 阅读 · 0 评论 -
Linker script in Linux(什么是链接脚本 )
from:http://blog.chinaunix.net/uid/20499746.html1. 什么是链接脚本链接器主要有两个作用,一是将若干输入文件(.o文件)根据一定规则合并为一个输出文件(例如ELF格式的可执行文件);一是将符号与地址绑定(当然加载器也要完成这一部分工作)。关于链接器的工作机制可以参考《Linker and Loader》一书,本文只关心它的第一个功转载 2016-08-25 19:23:29 · 424 阅读 · 0 评论 -
对.lds连接脚本文件的分析
转自:http://blog.chinaunix.net/uid-26404697-id-3182838.html.lds文件定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。先看一下 GNU官方网站上:http://www.gnu.org/对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(a转载 2016-08-25 19:48:05 · 359 阅读 · 0 评论 -
汇编文件后缀 .s 与 .S以及编译连接过程
转自http://www.cnblogs.com/IamEasy_Man/archive/2011/08/10/2134212.html一、大小写后缀的区别.s 汇编语言源程序;汇编.S 汇编语言源程序;预处理,汇编小写的s文件,在后期阶段不在进行预处理操作,所以我们不能在这里面写预处理的语句在里面大写的S文件,还会进行预处理、汇编等操作,所转载 2016-08-25 19:54:28 · 11263 阅读 · 0 评论 -
Make 命令
make /make droid如果在源码树的根目录直接调用“make”命令而不指定任何目标,则会选择默认目标:“droid”(在 main.mk 中定义)。因此,这和执行“make droid”效果是一样的。droid 目标将编译出整个系统的镜像。从源代码到编译出系统镜像,整个编译过程非常复杂。这个过程并不是在 droid 一个目标中定义的,而是 droid 目标会依赖许多其他的转载 2016-09-01 14:24:18 · 1545 阅读 · 0 评论 -
数据类型不匹配时最好使用强制类型转换
一般情况下,在变量赋值时,低级类型可赋值给高级类型,不需要强制转换数据类型。但是需要注意32位数据赋值给64位数据的情况,有些编译器没有对这种类型赋值进行优化,如果不强制类型转换,会导致不可预料的结果,比如得到的数据和实际想要的不一致,导致系统当掉等。综上,在低级类型赋值给高级类型时最好使用强制转换,避免编译器未对此类转换做优化而导致的未知问题原创 2016-09-07 21:17:11 · 1018 阅读 · 0 评论 -
在 Build 系统中添加新的产品
在 Android Build 系统中对产品定义的文件通常位于 device 目录下(另外还有一个可以定义产品的目录是 vender 目录,这是个历史遗留目录,Google 已经建议不要在该目录中进行定义,而应当选择 device 目录)。device 目录下根据公司名以及产品名分为二级目录。通常,对于一个产品的定义通常至少会包括四个文件:AndroidProduc转载 2016-09-01 14:26:43 · 610 阅读 · 0 评论 -
Kconfig
Kconfig文件是内核配置选项文件,它就是各种配置界面的源文件,内核的配置工具make menuconfig 等读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。arch/arm/configs/xxx_defconfig用于配置内核选项,在make img时会首先执行make xxx_defconfig生成.config文件。生成的过程cp转载 2016-09-01 11:35:55 · 818 阅读 · 0 评论 -
linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
转自http://blog.youkuaiyun.com/xdw1985829/article/details/6833319我们在进行Linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面:这个界面是怎么生成的呢?跟我们经常说的内核配置与与编译又有什么关系呢?下面我们借此来讲解一下linux内核的配置机制及其编译过程。一、配置系统的转载 2016-11-09 16:24:34 · 350 阅读 · 0 评论 -
内核Kbuild 学习
转自http://www.360doc.com/content/12/0107/15/6828497_177891385.shtml# ===========================================================================# We're called with mixed targets (*config and buil转载 2016-11-18 17:30:58 · 1683 阅读 · 1 评论 -
Makefile中的build构建机制
转自http://blog.youkuaiyun.com/metersun/article/details/52212842一. build定义:scripts/Kbuild.includebuild := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj$(KBUILD_SRC)常规情况下为空,所以的变量转载 2016-11-18 16:20:12 · 6221 阅读 · 0 评论