我正在尝试将 postgresql 与 SOCI 一起使用,用 MinGW 构建他们的库。
我遇到了以下问题。
PostgreSQL 定义了这个结构@pthread.h:
#ifndef HAVE_STRUCT_TIMESPEC
#define HAVE_STRUCT_TIMESPEC 1
struct timespec {
long tv_sec;
long tv_nsec;
};
#endif /* HAVE_STRUCT_TIMESPEC */
但是进入编译器,也有这个结构@timeb.h
#ifndef _TIMESPEC_DEFINED
#define _TIMESPEC_DEFINED
struct timespec {
time_t tv_sec; /* Seconds */
long tv_nsec; /* Nanoseconds */
};
struct itimerspec {
struct timespec it_interval; /* Timer period */
struct timespec it_value; /* Timer expiration */
};
#endif
这导致 timespec 的重复声明。我的问题是:
- 我可以在 postgresql 上编辑宏以避免被声明两次吗?
- 如果是这样,这个time_t和timespec.tv_spec类型的长差异会是一个问题吗?
- 什么是解决这种情况的好方法?
我正在使用 PostgreSQL 9.3 x86