Posts Tagged ‘VS2008’

用 VS2008 编译 ucl-1.03 的问题

Posted on the 九月 2nd, 2008 under 程序开发 by Tommy

今天在用 VS2008 编译 SlOnline 的代码的时候,发现 ucl-1.03 的库不能编译了。用 OopsWare 已经编译好的版本就可以,自己编译就报错。提示的错误为

error C3163: '_vsnprintf': attributes inconsistent with previous declaration

OopsWare 使用的版本是 VS2008 Express Edition,我用的是 VS2008 Team Edition。感觉问题就是出在这里了。因为之前我用 VS2005 编译的时候也没有类似的问题。

最后查资料,应该是宏定义所导致的问题。找到 ucl-1.03 里面的 acc/acc-auto.h 这个文件,将源代码中第 436 行的代码

# define vsnprintf _vsnprintf

修改为

#if (_MSC_VER < 1500)
# define vsnprintf _vsnprintf
#endif

其中,_MSC_VER 表示 VC 编译器的版本号,1500 对应的是 VS2008。修改后,重新编译,问题解决!

2008-09-07 更新:

OopsWare 的 VC2008 Express 也有这个问题,不过他是通过修改 VC 自带的头文件来解决的