在静态库中定义枚举

时间:2013-03-07 00:20:26

标签: c windows eclipse static-libraries

我的文件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_tfoo_afoo_bfoo_c未定义,而get_foo已定义。

为什么?

1 个答案:

答案 0 :(得分:0)

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

  1. 右键单击提供错误的项目(而不是静态库),然后选择Index > Freshen All Files
  2. 再次右键单击Index > Rebuild
  3. 您的项目现在应该能够在任何包含的静态库中找到所有符号。