请教,这个错误怎么解决: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before

qianfeng192003 2009-08-12 07:00:00
各位牛人好:
今天在练makefile的时候遇到了这个错误,sort.h:4: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘Sort’

代码如下:

#ifndef SORT_H
#define SORT_H

class Sort
{
public:
Sort();

virtual bool doSort(int *data, int left, int right)=0;
};

#endif

在ubuntu下编译,实在是找不到错误所在,请高手指点,谢谢!
...全文
42558 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeluu1001 2011-12-07
  • 打赏
  • 举报
回复
mark
今天我也遇见了,.c文件里再次包含了一次同一某某.h文件,出现了这个提示
蒙奇D路飞 2011-10-18
  • 打赏
  • 举报
回复
gcc编译.c的文件也出现这种状况吗[Quote=引用 9 楼 mstlq 的回复:]

引用 7 楼 mymtom 的回复:
引用 5 楼 mymtom 的回复:
哪里少了个分号(;)吧,
要不就是用gcc编译.cpp文件,这是不行的
要用g++

仔细看了一下行数,第四行是class Sort
楼主一定是在用gcc 编译.cpp文件了。


5楼真细心^_^
[/Quote]
bk461409485 2011-10-11
  • 打赏
  • 举报
回复
在VS2005中也遇到过这样的问题,挂载WinAVR编译器,一般是由于文件中使用的关键字未引入头文件所致。
NXEGR 2011-08-01
  • 打赏
  • 举报
回复
今天用gcc 编译一个文件出现如下错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token

语句都快注释完了,编译还是通不过,最后检查include,才发现,原来是include漏了致命重要的”#“号!!

我写成如下形式了:


include<stdio.h>


今天居然也这样,太粗心了,哎哎啊
dongzhiliu 2010-06-17
  • 打赏
  • 举报
回复
今天用gcc 编译一个文件出现如下错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token

语句都快注释完了,编译还是通不过,最后检查include,才发现,原来是include漏了致命重要的”#“号!!

我写成如下形式了:

include <stdio.h>

......

浪费了两分钟。看来还是那句话,细心写代码更胜于快速写完再调试修改。

假如函数定义时,写成如下形式,也会给出同样的提示:

void printspace(int n); //注重这里应该是一个“{”,不小心或者只是习惯性地加一个“;”号

int i=0;

....(你的函数内容)

}

百度了一下,这种错误的提示的提问者还不少,故写出来,以供参考
明i香 2010-06-09
  • 打赏
  • 举报
回复
我再补充一下,还有一种可能是,新加的内容与原有的头文件有冲突。我就是这个情况。
共同学习
明i香 2010-06-09
  • 打赏
  • 举报
回复
我也遇到这问题,呵呵,还好又遇到大家了,谢谢,顶!
yqw2007 说的很对,很好,我要时时提醒自己。
  • 打赏
  • 举报
回复
c++ 没有向c做接口extern"C",这是一些程序员的通病~
laohuang112 2010-04-09
  • 打赏
  • 举报
回复
曾经遇到这个问题,虽然这个贴子时间长了点,但估计还会有人遇到同样问题的。如果error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘XXX’,如果XXX是类名,那么几乎可以肯定地说是你的C文件里包含了C++头文件。楼主遇到的正是这个问题。建议不要使用10楼的方法。最好的方法是,不要去包含c++头文件!如果你的C文件要用到类,干脆直接将C文件改成CPP文件得了。缺少标点符号和全半角的提示是不一样的。可以自己试一下就知道了。
汗晕倒 2009-08-13
  • 打赏
  • 举报
回复
刚开始的时候很容易用gcc编译C++的代码
qianfeng192003 2009-08-13
  • 打赏
  • 举报
回复
确实是这个问题,谢谢各位,马上结贴,共有6位出现,我尽量分配公平,见者有份,多劳多得。
qianfeng192003 2009-08-12
  • 打赏
  • 举报
回复
确实是用GCC了,估计就是这个问题了,明天去验证一下,经验不足,谢谢各位,明天给结果。
2009-08-12
  • 打赏
  • 举报
回复
用Makefile很容易误用gcc的,类似问题遇到过无数次……还有连接的时候也是,有些版本的make喜欢用gcc连接,直接挂掉。我通常都在头部加一句CC=g++ CFLAGS=-x c,感觉挺好用。
mstlq 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mymtom 的回复:]
引用 5 楼 mymtom 的回复:
哪里少了个分号(;)吧,
要不就是用gcc编译.cpp文件,这是不行的
要用g++

仔细看了一下行数,第四行是class Sort
楼主一定是在用gcc 编译.cpp文件了。
[/Quote]

5楼真细心^_^
wuwusansan 2009-08-12
  • 打赏
  • 举报
回复
顶楼上
mymtom 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mymtom 的回复:]
哪里少了个分号(;)吧,
要不就是用gcc编译.cpp文件,这是不行的
要用g++
[/Quote]
仔细看了一下行数,第四行是class Sort
楼主一定是在用gcc 编译.cpp文件了。
mstlq 2009-08-12
  • 打赏
  • 举报
回复
会不会是makefile文件有问题呢?
mymtom 2009-08-12
  • 打赏
  • 举报
回复
哪里少了个分号(;)吧,
要不就是用gcc编译.cpp文件,这是不行的
要用g++
superbtl 2009-08-12
  • 打赏
  • 举报
回复
我这边没出错 应该不是C++语法错误 是不是编译的命令问题 g++的
qianfeng192003 2009-08-12
  • 打赏
  • 举报
回复
不是拷来的,我自己写的,应该不是全半角的问题,我在vim下没用过中文输入法。
加载更多回复(2)

65,201

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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