符号无法解决

时间:2012-05-18 02:08:40

标签: c eclipse-cdt

我有一个程序在eclipse C / c ++ cdt中告诉我“符号xxxx无法解析”。

示例文件如下:

标题文件:s.h

#ifndef S_H_
#define S_H_

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
    #include "s0.h"
} msg_type;

#endif /* S_H_ */

上述文件包含如下所示的头文件:

标题文件s0.h

MSG_ID_COMMAND1,
MSG_ID_COOMAND2,

主文件test.c

/*
 * test.c
 *
 *  Created on: 2012-5-18
 *      Author: js
 */
#include "s.h"

int i = MSG_ID_COMMAND1;

main()
{
    print ("%d",i);
}
Eclipse告诉我:Symbol MSG_ID_COMMAND1 could not be resolved

但该程序在vc2008中没问题。

为什么?

//回答:Seth Carnegie。如果我们使用i = MSG_ID_INVALID_TYPE,那就没关系。

2 个答案:

答案 0 :(得分:1)

更改

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
    #include "s0.h"

typedef enum {
    MSG_ID_INVALID_TYPE = 0,
#include "s0.h"

某些预处理器忽略了左对齐的令牌。 VS一个人没有,显然是日食。

答案 1 :(得分:0)

您创建的代码段无法编译,因为print函数不存在且没有包含来定义它