- 浏览: 636299 次
- 性别:
- 来自: 苏州
最新评论
-
laj12347:
楼主太给力了
Eclipse设置、调优、使用 -
kunlyy:
楼主太给力了
Eclipse设置、调优、使用 -
knight_black_bob:
mark ~
Eclipse设置、调优、使用 -
hujunxiang:
好全好全~~~
Eclipse设置、调优、使用 -
bugyun:
楼主辛苦了
Eclipse设置、调优、使用
文章列表
对于习惯eclipse的人来说,开发ndk的话,还是用eclipse的cdt最顺手。但网上关于cdt的详细使用的介绍太少了,第一次开发cocos2d时,搭建cocos2d的环境也花了好长时间,现在也在慢慢的摸索cdt的一些细节设置和功能,发现cdt整体还行吧,就是bug偏多,而且调试功能感觉有点弱,现在基本只能使用log来调试c++。
下面上图,介绍暂时比较熟悉的cdt功能。
整体设置:
cdt部分的外观设置
build部分设置
eclipse可以设置自己的环境变量,eclipse开启后这些环境变量就生效,同时不会影响系统的环境变量,
代码静态分析功能,在编译前就分 ...
A.h文件
#ifndef _A_H_
#define _A_H_
#include"B.h"
static int count=0;
class A
{
public:
void fun1();
};
#endif
B.h文件
#ifndef _B_H_
#define _B_H_
class A; //注意:这里是C++类的前向声明,没有用include“A.h”把对方加进来是考虑到了没有必要,因为最终两个类是要编译到一块
class B
{
public:
void fun2();
...
**** Build of configuration Default for project _bai_yin ****
sh ndk-build
Error: Cannot run program "sh": Launching failed
【错误原因】eclipse的adt插件的ndk路径还没有设置,设置一下就ok了
[size=medium]
(1):返回临时变量的引用。
std::string & getString()
{
std::string str("text");
return str;
}
getString()返回时, str也被销毁了, 所以是引用着一个已被销毁的变量.
(2)函数参数上使用引用时,参数传入了NULL
void print(std::string & str)
{
std::cout << str << '\n';
}
int main(void ...
编译ndk时遇到non-numeric second argument to `wordlist' function: ''. Stop.错误, baidu了下, 很多方法都没用, 后来看到说是AndroidManifes.xml引起的, 查看了下, 还果真是的, 之前修改这个文件时, 不小心把application破坏了, 然后在下面生成了一个空的application, 然后把这个改好就ok了.
参考链接:
http://hi.baidu.com/zhuangtongquan/item/80356cb11e8c3c412bebe3cc
http://hi.baidu.com/googl ...
adb除了通过usb连接外,还可以通过tcp连接建立调试,在某些定制的ROM和android 4.1或以上版本都已经内置了adb over wifi的支持。如果你的手机属于上述两种情况的话可以略过此文。
下边把需要调试的机器称为target,把adb主控端称为host,手动设置adb over wifi的过程如下:
target端和host端连接到同一个路由(必须处于同一个网段),在target端安装超级终端并且能获取root权限。打开超级终端依次运行:
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
全部完成之后运行ge ...
今天在Eclipse里面测试Android的开发。
写好的代码编译时没有问题,但是在模拟器上安装时,出现了如下的错误提示,安装不能成功。
Installing test.apk...
Installation failed due to invalid APK file!
Please check logcat output for more details.
上网查关于这个错误提示的原因和解决办法,查了很久都没有找到一个解决办法。
重新仔细检查了一下代码,发现我的包名前面加了一条下划线“_test”,觉得可疑,于是去掉下划线再试,安装成功了!
记录在此,以后再查具体是何原因。
由于实在没法不用QQ,当QQ哭着闹着要升级到最新版的时候,手欠的点了升级到了2013的最新版。
然后电脑连接安卓手机的时候问题来了,在控制台输入adb devices提示:
adb server is out of date. killing...
ADB server didn't ACK
然后QQ很好心的提示安装它的手机管家可以方便的管理安卓手机,赶紧开打任务管理器,发现有个tadb.exe的进程,杀掉之后一切adb功能都正常了。
但是每次连接手机的时候,这个进程都很流氓的自动运行,每次都要进任务管理器杀又太麻烦。于是进
C:\Users\name\AppData\Roam ...
这个和java中的类类似, 仅仅是写法上有些区别, 以及类的默认特性上有些区别.
写法上的区别, 同时写出java和c++的类:
MyClass.java
public class MyClass
{
private char mChar;
private boolean mBool;
private byte mByte;
priavate short mShort;
private int mInt;
priavate long mLong;
priavate float mFloat;
priava ...
c++中的字符串也是一个比较坑爹的地方, 不像java中的字符串使用起来非常的方便, 可以用难用和容易出错来形容. 难用也没办法, 字符串是编程时必须要用到的一个东西, 是不可避免的.
c++中的字符串的坑爹的地方:
(1)不是基础数据类型, 不像java那样有一个很好用的String类. (有人要说了, c++中不是有string类么, 不过那个string类并不是和java中的String类对等的, 他可以看作是一个动态的char数组而已).
(2)字符串是用数组来表示的, 且默认字符串上不带字符串长度的属性. (java中有length()这个方法来很方便的获取字符串的长度)
(3)字 ...
c++中的const和java中的final类似, 表示不可变的意思, 但java中的final仅仅用在这几个地方:
(1)修饰变量, 如:
public final int age; // 不可变成员
public static final int TYPE_A = 1; // 常量
(2)修饰方法, 表示方法不可被Override覆盖, 即去除方法的多态性.
(3)修饰局部变量, 也是不可变.
(4)修饰类, 表示类不可被继承
而c++中的const功能就多了:
(1)修饰全局变量: 表示变量值不可修改
Main.cpp
#include <iostream>
us ...
static关键字java中也有, 是静态的意思, 在java中可以用来修饰变量和方法. 修饰变量时, 变量就成为类变量, 对于所有对象都具有相同的值; 修饰方法时, 方法就成为类方法, 不能访问成员变量.
c++中的关键字也类似, 用来修饰变量和方法, 不过比java中还稍微多一些功能:
(1) 修饰全局变量: 全局变量将仅在该文件内可用, 其它文件中无法访问到这个变量
(2) 修饰全局方法: 全局方法将仅在该文件内可用, 其它文件中将无法访问到这个方法
(3) 修饰局部变量: 可以将其看作static修饰的全局变量了, 只是作用范围变为局部, 和局部变量原来的作用范围相同.
(4) 修饰 ...
c++中函数默认就是全局的, 变量写在函数外的话默认也是全局的.
Global.cpp, 定义一个全局变量和一个全局函数
#include <iostream>
using namespace std;
int g_int = 10;
void globalMethod()
{
cout << "globalMethod()" << '\n';
}
全局函数的声明需要使用extern关键字, 以告诉编译器, 这是在其它地方定义了的变量或函数.
Main.cpp
#include <iost ...
c++中又一个比较啃爹的就是数组了, 数组不像java那样, 带一个length属性存放数组的长度,
而是需要硬编码或者自己来计算.
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(int);
但是只有这种硬编码的数组才能计算长度, 对于动态创建的数组就无法用这种方式来算出其长度了.
同时, 还要注意一个陷阱:
int getArrayLength(int array[])
{
int length = sizeof(array) / sizeof(int);
r ...
c++中的基本数据类型比较多, 且不同平台间各个类型所占的字节数还不一样, 暂时不管这些,
这边仅仅是认识c++中有哪些基本数据类型.
// 常见类型
bool
char
wchar_t
short
int
long
float
double
long double
// 无符号类型
unsigned short
unsigned int
unsigned long
// 指针类型(所有的指针类型在win7 32位平台上都占用4个字节)
bool *
char *
wchar_t *
short *
int *
long *
float *
double *
long double *
...