摘要: 一,crosstool-ng的下载及编译方法可以参考如下网站: http://www.crosstool-ng.org/二,编译过程注意事项1)如果遇到有些代码包不能下载,请依据指定版本,在这里http://ftp.gnu.org/gnu/下载。2)编译时,可用内存至少2G,虚拟内存1G,如果你的内存足够大,虚拟内存可以不用。3)error: forced unwind support is required的错误,选中C库选项的Force unwind support即可。4)configure: error: expat is missing or unusable 需要安装libexpa 阅读全文
posted @ 2014-02-21 11:17 王庆 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.tbdata.org/archives/878这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。问题拿捏得十分到位,下面是我对原文的翻译,原文见这里(By Edsko de Vries, January 2006)。本文是介绍C++的技术文章,假定读者对于C++有比较深入的认识,同时也需要一些汇编知识。本文我们将阐释GCC编译器针对多重继承和虚拟继承下的对象内存布局。尽管在理想的使用环境中,一个C++程序员并不需要了解这些编译器内部实现 阅读全文
posted @ 2013-09-22 14:58 王庆 阅读(388) 评论(0) 推荐(1) 编辑
摘要: 1,切换到Android目录下bin/classes,使用javah命令生成jni所需的头文件,命令类似于:javah com.xxx.ooo,其中,com.xxx为package名称,ooo为包含native方法的class名称,不需要.class后缀。2,在项目的主目录下生成名为jni 的文件夹,将生成的.h头文件拷贝到该目录,如果觉得该文件的名称过长,可以进行重命名,例如可以将com.xxx.ooo.h重命名为test.h。3,在jni目录下新建test.c文件,包含test.h头文件,在其中将.h文件的方法声明拷贝到.c中,然后进行代码的编写。4,在该目录新建Android.mk文件, 阅读全文
posted @ 2013-09-04 16:54 王庆 阅读(1881) 评论(0) 推荐(0) 编辑
摘要: 转载地址:http://blog.sina.com.cn/s/blog_972ddc1b01012mmh.html今天要写这篇博文是因为遇到这样的不是技术的问题,但找到问题根源再解决这个问题又花费很长时间的,在网上也没有找到对症的解决方案,所以必须的拿出来跟大家分享一下,以免浪费大家的宝贵时间。问题:eclipse xml文件中按alt+/没有提示信息?方案1:在xml文件上右击-->open with ,看一下xml文件的默认打开方式。我遇到的是在Layout下的xml文件里没有提示信息。查看了一下xml的默认打开方式不是Android Layout Editor,这时需要修改xml文 阅读全文
posted @ 2013-09-04 09:47 王庆 阅读(7664) 评论(1) 推荐(3) 编辑
摘要: 转载:http://blog.csdn.net/smfwuxiao/article/details/6587709首先需要确定目标机器的指令集。如果是 x86 的机器,用 x86-4.4.3 版本的工具链;如果是 arm 指令的,用 arm-linux-androideabi-4.4.3 版本 (x86-4.4.3 和 arm-linux-androideabi-4.4.3 位于ndk目录中)1、gcc 的sysroot 选项sysroot 选项设定 gcc 在编译源码的时候,寻找头文件和库文件的根目录。可以这样调用 gcc --sysroot=/tmp/gcc-arm (及其他选项)。NDK 阅读全文
posted @ 2013-09-03 16:49 王庆 阅读(7520) 评论(0) 推荐(1) 编辑
摘要: 1,在如下地址checkout源代码,我checkout的版本为0.9.7http://code.google.com/p/android-vnc-server/source/checkout2,在源代码目录下,新建jni目录,将checkout的源代码都剪切至该目录3,在jni目录,新建Application.mk文件,添加APP_ABI := aremabi armeabi-v7a,保存文件退出4,修改LibVNCServer-0.9.7/libvncserver/main.c文件中的第245行,将sprintf(stderr,buf); 修改为sprintf(stderr,"% 阅读全文
posted @ 2013-08-29 15:45 王庆 阅读(7545) 评论(0) 推荐(0) 编辑
摘要: 1,http://www.gnu.org/software/gdb/download/,下载最新版本的gdb源代码包,我使用的是gdb-7.6.tar.gz,使用tar命令进行解包(tar -xvzf gdb-7.6.tar.gz),cd进gdb-7.6/gdb目录,使用vi找到remote.c中的如下代码:if(buf_len > 2 * rsa->sizeof_g_packet) error(_("Remote 'g' packet reply is too long: %s"),rs->buf);将上面两行注释掉,添加如下代码if(b 阅读全文
posted @ 2013-08-26 11:48 王庆 阅读(7691) 评论(0) 推荐(0) 编辑
摘要: 首先说一下平台和语言:系统平台为CentOS6.3,RSA加解密时使用NOPADDING进行填充1)使用C/C++调用系统自带的openssl2)Android4.2模拟器,第三方openssl(android-external-openssl-master),使用ndk编译静态库,然后使用C/C++进行调用3)使用Java自身的类库(javax.crypto和java.security)在linux下,使用如下命令,生成RSA加解密时使用的public和private的keyopensslgenrsa-outrsa_private_key.pem1024 //生成私钥opensslrsa-. 阅读全文
posted @ 2013-08-22 13:29 王庆 阅读(9848) 评论(4) 推荐(1) 编辑
摘要: 1,SecureCRT2,SSH Secure Shell Client3,VNC Viewer如果想VNC Server启动时加载vncserver服务需要修改/etc/rc.d/rc.local文件加入/usr/bin/vncserver -geometry 1280x800服务器重启后,下次客户端链接时,窗口的分辨率即为1280x800在VNC Viewer中启动Android虚拟机时如果使用emulator -avd 虚拟机的名称,出现不能启动的情况,尝试使用emulator-arm -avd 虚拟机名称。 阅读全文
posted @ 2013-08-21 16:26 王庆 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 将NDK编译的第三方静态拷贝到JNI目录下,在Android.mk中添加如下代码以openssl静态库(libcrypto-static.a)为例第一种链接方法:LOCAL_LDFLAGS := libcrypto-static.a第二种链接方法:LOCAL_LDLIBS := libcrypto-static.a第三种链接方法:include $(CLEAR_VARS)LOCAL_MODULE := third_static_lib (可以随便起一个名字)LOCAL_SRC_FILES := libcrypto-static.ainclude $(PREBUILT_STATIC_LIBRAR 阅读全文
posted @ 2013-08-21 16:10 王庆 阅读(12538) 评论(0) 推荐(0) 编辑