为什么在eclipse中这个程序无法编译通过?

[复制链接]
查看11 | 回复2 | 2008-9-9 13:50:08 | 显示全部楼层 |阅读模式
这是我的C程序,直接用gcc能编译通过,但用eclipse 3.4就是无法通过,总是显示以下错误:
错误: ‘ch’未声明 (在此函数内第一次使用) ato.c ato/src 13 C/C++ Problem
错误: (即使在一个函数内多次出现,每个未声明的标识符在其 ato.c ato/src 13C/C++ Problem
错误: 所在的函数内也只报告一次。) ato.c ato/src 13 C/C++ Problem
但相同的程序在netbeans下却能编译通过。我的系统是ubuntu 8.04,除了这些错误之外,eclipse还提示“Launch failed.Binary not found”。如果switch ()里面的数不是一个结构体,又能正常运行,请问这是怎么回事?以前有windows下面用eclipse写C程序时也总是出现“Launch failed.Binary not found”这样的错误,请问有什么好的解决办法吗?
#include
typedef struct node
{

char ch;

struct node *next;
}stack;
int main()
{
stack s;
s.ch='*';
switch (s.ch)
{

case '+': printf("%c",s.ch); break;

case '-': printf("%c",s.ch); break;

case '*': printf("%c",s.ch); break;

case '/': printf("%c",s.ch); break;
}
return 0;
}
我的系统是linux,也不想换成windows,VC并非国际标准,所以还是用gcc比较好,既然eclipse是调用gcc的,那么它应该和直接用gcc的运行结果是一样,但现在两者出现了不一致,就是想不通到底是怎么回事

回复

使用道具 举报

千问 | 2008-9-9 13:50:08 | 显示全部楼层
用eclipse来编译C/C++不是一个好的选择,况且还是在windows平台下,它其实是调用的gcc程序来编译的,gcc是linux里面的东西,所以难免会出错。如果还在windows里面还是去下载一个VC吧,如果换linux,gcc用起来也是蛮不错的~...
回复

使用道具 举报

千问 | 2008-9-9 13:50:08 | 显示全部楼层
唉。又是一个坚强的孩子。1,struct和typedef的语法混用了(但是很奇怪确实是编译通过了)改为以下或许可读性会更好typedef struct{ char ch; struct stack *next; }stack; 2,你的eclipse CDT根本没有配置成功,所以Binary not found(找不到二进制文...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行