数组元素具有不完整的类型。

我正在尝试弄清楚为什么在Mac OSX上无法编译启用e17窗口管理器包ejde。Make命令输出如下(为了可读性,将长行拆分):

libtool:编译:gcc -std = gnu99 -DHAVE_CONFIG_H -I。-I ../..-I。\
-I../..-I../../src/bin-I../../src/lib\
-DPACKAGE_BIN_DIR=\"/usr/local/bin\"\
-DPACKAGE_LIB_DIR=\"/usr/local/lib\"\
-DPACKAGE_DATA_DIR=\"/usr/local/share/edje\"\
-I/usr/local/include/eina-1-I/usr/local/include/eina-1/eina\
-I/usr/local/include/eet-1 -I/usr/local/include/evas-1 \
-I/usr/local/include/freetype2 -I/usr/local/include \
-I/usr/local/include/ecore-1 -I/usr/local/include/embryo-1 \
-I/usr/local/include/ecore-1 -I/usr/local/include/eina-1 \
-I/usr/local/include/eina-1/eina -I/usr/local/include/evas-1 \
-I/usr/local/include/eet-1 -I/usr/local/include/freetype2 \
-I/usr/local/include \
-g -O2 -MT edje_lua2.lo -MD -MP -MF.deps/edje_lua2.Tpo \
-c edje_lua2.c -fno-common -DPIC -o

。/libs/edje_lua2.o edje_lua2.c:183:错误:数组类型具有不完整的元素类型

edje_lua2.c:638:错误:数组类型具有不完整的元素
type edje_lua2.c:在函数'_elua_messagesend'中:

第183行:

static const struct luaL_reg _elua_edje_gc_funcs [] =
{
     {"__gc", _elua_obj_gc}, // garbage collector func for edje objects

     {NULL, NULL} // end
};

原文链接 https://stackoverflow.com/questions/9458042

点赞
stackoverflow用户1119701
stackoverflow用户1119701

请在声明 _elua_edje_gc_funcs 对象之前检查结构类型 struct luaL_reg 是否已声明。

您可能错过了相关的头文件:可能是因为它没有包含在内,不在您的系统中或缺少正确的 -I 路径。

2012-02-26 22:58:36
stackoverflow用户73804
stackoverflow用户73804

我猜它没编译成功是因为 lua-5.2 没有这个:

#define luaL_reg      luaL_Reg

http://lua-users.org/lists/lua-l/2011-07/msg00708.html

不值得一试,在 Mac 上使用 E17 是愚蠢的行为。

2012-02-27 00:10:16