1

我有一个foo.h文件enum

#ifndef FOO_H
#define FOO_H

enum foo_e { foo_a, foo_b, foo_c };
typedef enum foo_e foo_t;

foo_t get_foo(char bar);

#endif

该文件foo.c导入它 ( #include "foo.h") 并毫无问题地使用它。

我通过 Eclipse 导出了这个项目的静态库,给了我一个libFoo.a.

在其他项目中,我使用该库并且所有符号都已解析、编译并且工作正常。只有enum声明不被识别。Eclipse 告诉我 , foo_t, foo_a,是未定义的,而已foo_b定义。foo_cget_foo

为什么?

4

1 回答 1

0

这是 Eclipse 如何索引项目的问题。您可以通过刷新项目的 Eclipse 索引来解决此问题。

  1. 右键单击给出错误的项目(不是静态库)并选择Index > Freshen All Files
  2. 再次右键单击Index > Rebuild

您的项目现在应该能够在任何包含的静态库中找到所有符号。

于 2017-03-01T15:43:58.293 回答