module(..., package.seeall)
local ffi = require("ffi")
ffi.cdef[[
typedef unsigned int mode_t;
typedef long int time_t;
typedef long int ssize_t;
struct timeval {
long int tv_sec; /* seconds */
long int tv_usec; /* microseconds */
};
struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
]]
上面是我们报错部分的一部分代码
On Thursday, September 21, 2017 at 2:18:40 PM UTC+8, Jiang Yuan wrote:
你们好:
我们有个问题,就是我们使用ffi模块的时候用了c语言的timeval,然后报redefine。后来想可能是我们兄弟团队也使用ffi的timeval,我们的业务部署在同一个nginx上所以导致这个问题。请问有办法能解决这个重定义冲突吗?还有比较奇怪的是,如果使用lua_code_cache=off时,这个错误不会出现,如果为on时就会出现重定义的问题!
谢谢帮助!