在Android下
定义模板函数、运算符重载、静态变量 和 形参默认值
与在c/c++中定义的区别在哪里?为什么? 在linux下能编译运行的一段代码 拿到android上,make下就报错了..........
定义模板函数、运算符重载、静态变量 和 形参默认值
与在c/c++中定义的区别在哪里?为什么? 在linux下能编译运行的一段代码 拿到android上,make下就报错了..........
解决方案 »
- 送分的帖子。简单易答
- android系统默认浏览器中点击视频链接,打开播放器播放,如何实现?
- 安卓 图片移动出现错误 各位大牛能否帮我看一下...谢了
- 如何构造pdu发短信
- android自定义通知的问题
- 模拟器这样的问题太奇怪了
- 分享个当连续建相同的控件的时候的方法,顺便讨教下一些问题。。。
- 【求助】\/Date(-62135596800000)\/ 这种日期格式该怎么解析啊
- 想在onReceive里面更新AppWidget的Textview,为什么不行?
- 咱板块有一个资源帖: 【Android版块开发资源大汇总 】,想说里面内容大多挺老了
- 关于android对话框
- srec.doxygen 这个文件是什么作用?
#include <stdio.h>template <class T>
void print_size(T t,int a=6)
{
printf("t = %d\t a = %d\n",sizeof(T),a);
}typedef struct myint{
int a;
int b;
}mint;int operator==(mint a,mint b)
{
if( a.a == b.a && a.b == b.b )
return 1;
return 0;
}int main()
{
mint m,n;
char s1[10] = "movie";
char s2[10] = "hello";
m.a = n.a = 4;
m.b = n.b = 7; print_size(5);
print_size('c',5); if(m==n) print_size(m);
return 0 ;
}
我又有另外个问题,
就是编译生成的.o文件,想生成库文件,报错如下
target SharedLib: libos (out/target/product/generic/obj/SHARED_LIBRARIES/libos_intermediates/LINKED/libos.so)
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: out/target/product/generic/obj/SHARED_LIBRARIES/libos_intermediates/src/thread.o: in function bridge(thread*, thread_type_e):external/vgx/libos/src/thread.cpp:25: error: undefined reference to 'create_posix_thread(char const*, unsigned long, unsigned long, void* (*)(void*), void*, unsigned long)'
这个函数我明明已经包含在头文件中了。
各位大大帮忙指点下....
#ifdef __cplusplus
extern "C" {
#include <utils/CallStack.h>
}
#endif类似这样就好了参考:
问题
编译NDK程序,提示错误“expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token“解决
目前的经历来看,是编译C程序中有C++特性时会出现该错误。
原因清楚,解决就很简单,要么去掉C++特性,要么把扩展名改为CPP还有一种情况要注意,就是obj目录下的以前编译的中间结果要删除干净,否则会造成误判,比如
1、做了一个A.c,编译通过
2、对A.c复制粘贴改名做出一个A.cpp
3、在A.cpp的头文件里加了一个类,再去编译,就会出现这个expected的错误。
原因不是很清楚,猜测是因为obj没清理,实际上build系统还是去编译A.c,因为A.c和A.cpp实际上用的是一个头文件(这个头文件里已经定义了一个类),此时build系统会发现这个C程序里有C++特性,就会报这个错误。