【问题标题】:Eclipse C constants defined in header could not be resolved无法解析标头中定义的 Eclipse C 常量
【发布时间】:2019-08-13 19:00:13
【问题描述】:

我正在编写一个 C 程序,其中我使用头文件来声明一些函数并定义几个常量。当我在我的代码中使用这些常量时,我​​得到了错误Symbol 'FOO' could not be resolved。我对声明的函数没有任何问题。

我正在使用 Eclipse Neon。我已经验证了包含头文件的目录的路径已添加到包含路径中。而且我还重启了 Eclipse。

header.h

#ifndef __header_h_
#define __header_h_

#define FOO 0x00
#define BAR 0x01

void do_stuff(int x);

#endif

main.c

#include <stdio.h>
#include "header.h"

int main() {
    do_stuff(FOO);
    return 0;
}

错误:无法解析符号“FOO”

我在这里错过了什么?

【问题讨论】:

  • 您可能需要做的是在包含路径中添加 -I 选项(假设为 gcc),在某个难以找到的编译器选项设置中。由于 Eclipse 实际上只是一个神秘的链接器错误生成器,因此我建议您改用 IDE,这样您就可以专注于调试代码而不是调试工具链。
  • 显然你的代码看起来不错。只有一件事:using __ at the start of any identifier is reserved for any use。也许试试#ifndef H__HEADER_
  • @Lundin 您不会将 Eclipse 归类为 IDE 吗?还是您的意思是另一个 IDE?
  • @KamiKaze 由于 Eclipse 不能用于任何形式的生产性开发,不,我不会将其归类为开发环境。
  • @Lundin 正如我所说,我验证了该目录位于包含路径中。而且我还检查了它是否在(确实很难找到)编译器选项设置中。此外,编译器似乎只在解析定义的参数时有问题。当我更改函数声明中的参数数量时,我收到一个错误,即 C 文件中相应函数的参数太少。所以我假设头文件被正确包含(或多或少)。

标签: c eclipse


【解决方案1】:

右击项目Index &gt; Freshen All Files然后Index &gt; Rebuild修复问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多