gcc 使用中常用的参数及命令
摘要:1. 执行过程 虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。 命令gcc (1). 首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。 (2). 接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。 (3). 汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲...
阅读全文
posted @
2012-03-16 16:11
人间奇迹
阅读(8458)
推荐(1) 编辑
ndk-gdb对java/native code联合调试
摘要:网上有不少文章,谈论 ndk-gdb对java/native code联合调试 ,本人参考了不少,虽然这些文章没能解决问题,但是给了不少的帮助,在此,分享本人搭建 java +native code(c c++)环境的整个过程。 1.gdb调试器 与 gdbserver 的关系,就是 gdb 与...
阅读全文
posted @
2012-03-13 15:47
人间奇迹
阅读(7738)
推荐(0) 编辑
C & C++ 中值得注意的编译,链接,调试,错误及其原因
摘要:1. #define VaParameter_Macro(...) 编译环境: VC6.0 编译错误: error C2010: '.' : unexpected in macro formal parameter list 原因: 据查是因为VC6.0不支持可变参数的宏定义,VC6.0编译不能通过2.****.cpp 文件中有如下函数: void skf_drawText(Skf_Char* pcText, Skf_S16 x, Skf_S16 y, screenRectSt rect, colourSt colorst, Skf_S32 flag, Skf_U16 font
阅读全文
posted @
2012-03-07 17:58
人间奇迹
阅读(4454)
推荐(0) 编辑
JNI 之二 :java & c/c++ 相互通信及调用
摘要:JNI是Java Native Interface的缩写,JNI是一种机制,有了它就可以在java程序中调用其他native代码,或者使native代码调用java层的代码。也就是说,有了JNI我们可以使Android项目中,java层与native层各自发挥所长并相互配合。 JAVA | | JNI | | NATIVE JNI相对与native层来说是一个接口,java层的程序想访问native层,必须通过JNI,反过来也一样。 1,如何告诉VM(虚拟机)java层需要调用native层的哪些libs? 我们知道java程序是运行在VM上的,而Native层的libs则不然。所以为了让j.
阅读全文
posted @
2012-03-07 10:32
人间奇迹
阅读(21194)
推荐(0) 编辑
JNI 调用规范
摘要:引言Java 的出现给大家开发带来的极大的方便。但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试;如果我们的应用中需要访问到特定的设备,甚至是仅符合公司内部信息交互规范的设备,或某个特定的操作系统才有的特性,Java 就显得有些力不从心了。面对这些问题,Sun 公司在 JDK1.0 中就定义了 JNI 规范,它规定了 Java 应用程序对本地方法的调用规则。实现步骤及相关函数使用本文将一步步说明在 Linux 平台下如何实现本地共享库与 Java 协同工作。Hello World 程序是目前标准的入门第一步,那么,我
阅读全文
posted @
2012-03-06 17:46
人间奇迹
阅读(5092)
推荐(0) 编辑
Android build system & Android.mk 规范
摘要:1. Android编译系统分析 --- 系统变量解析LOCAL_PATH - 编译时的目录 LOCAL_MODULE - 编译的目标对象 LOCAL_SRC_FILES - 编译的源文件 LOCAL_C_INCLUDES - 需要包含的头文件目录 LOCAL_SHARED_LIBRARIES - 链接时需要的外部库 LOCAL_PRELINK_MODULE - 是否需要prelink处理BUILD_STATIC_LIBRARY - 指明要编译成静态库 BUILD_SHARED_LIBRARY - 指明要编译成动态库(1). LOCAL_PATH - 编译时的目录 $(call 目录,目录….
阅读全文
posted @
2012-03-06 17:40
人间奇迹
阅读(8699)
推荐(1) 编辑
Android NDK开发指南(二)Android.mk文件
摘要:Android.mk文件语法详述1. 概述 Android.mk文件是用来描述build system(编译系统)的,更准确的说:该文件是一个微型的GNU Makefile片段,将由build system解析一次或者多次。这个文件的目的是用来允许你将源文件组织成模块,这个模块中含有:一个静态库(....
阅读全文
posted @
2012-03-06 16:47
人间奇迹
阅读(7178)
推荐(0) 编辑
Android NDK开发指南(一) Application.mk文件
摘要:Application.mk文件Application.mk目的是描述在你的应用程序中所需要的模块(即静态库或动态库)。Application.mk文件通常被放置在 $PROJECT/jni/Application.mk下,$PROJECT指的是您的项目。简介:-----------------------------要将C\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。本文档是描述你的Android应用程序中需要的本地模块的Application.mk的语法使用。1. APP_PROJECT_PATH : 这个变量是强制性的,并且会
阅读全文
posted @
2012-03-06 11:33
人间奇迹
阅读(23765)
推荐(1) 编辑