error: expected '=', ',', ';', 'asm' or '__attribute__' before '==' token

movie0125 2011-05-25 02:56:20
运算符重载
boolean_t operator==(thread_t& thd_a, thread_t& thd_b)
{
return (&thd_a == &thd_b);
}
error: expected '=', ',', ';', 'asm' or '__attribute__' before '==' token

函数模板
error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
template<class TYPE>
static inline void list_free(list_t* plst);

代码明明没问题啊,这是怎么了?
...全文
4422 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingpwen 2012-07-06
  • 打赏
  • 举报
回复
#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++特性,就会报这个错误。
movie0125 2011-05-25
  • 打赏
  • 举报
回复
该问题已经转移至另外一张帖子
不信难不倒你
movie0125 2011-05-25
  • 打赏
  • 举报
回复
我换个问法:
在Android下 定义模板函数、运算符重载 和 形参默认值
与在c/c++中定义的区别在哪里?为什么?
movie0125 2011-05-25
  • 打赏
  • 举报
回复
非常感谢你的回答

算是JNI和内核之间的c++库层吧

在android/external下
fire_shade 2011-05-25
  • 打赏
  • 举报
回复
我也是菜鸟,这种情况就真不知道了,既然Linux上可以编译,那只有一步一步测试了。
要不就是编译器的问题;要不就是库与标准的C/C++不太一样。
——换个重载符号 或者 不做事直接return 0 或者 不带参数。 看到底是那个地方编不过。
弱弱问下,看你写的这样,是在内核里、还是抽象层?本来想试一试,但我还不知道这段代码的上下文,该加到哪里去编呢?
movie0125 2011-05-25
  • 打赏
  • 举报
回复
error: expected '=', ',', ';', 'asm' or '__attribute__' before '==' token
这个错误不知道是不是和arm编译器与关系
movie0125 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fire_shade 的回复:]

会否是编译工具的问题,我之前做个一些其他的方案(非android),编译工具链是公司做好的。
当时也编过什么传地址的函数(正儿八经的C语言,不会是语法错误,但是编译器总是报错)。你试下把型参用(thread_t* thd_a, thread_t* thd_b)试一试
[/Quote]
改了,make后结果还是那样的
fire_shade 2011-05-25
  • 打赏
  • 举报
回复
会否是编译工具的问题,我之前做个一些其他的方案(非android),编译工具链是公司做好的。
当时也编过什么传地址的函数(正儿八经的C语言,不会是语法错误,但是编译器总是报错)。你试下把型参用(thread_t* thd_a, thread_t* thd_b)试一试
movie0125 2011-05-25
  • 打赏
  • 举报
回复
跪求一解
jnet007 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whatafuckinglongname 的回复:]

c++做android开发的?
[/Quote]

mark....
movie0125 2011-05-25
  • 打赏
  • 举报
回复
这些代码我单独拿出来在linux编译运行没问题,但是拿到android里面就出问题了
  • 打赏
  • 举报
回复
c++做android开发的?

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧