从3.2rc1升到3.3rc1,一个自定义库无法使用了,请教解决方案

在3.2rc1中,我添加了一个自定义的库,这个库使用c制作,在3.2中,放在quick\lib\lua_extension下面,在lua_extensions.c中include,加上luaopen的入口即可使用。

最近计划升级到3.3,在迁移的过程中,发现在目录改变后,这个库在3.3的工程下,应该是放在quick\lib\quick-src\lua_extensions这里,并在lua_extensions_more.c中进行include。

在设置完成后,mac下,使用xcode编译一次通过,非常顺利,功能的测试也没有任何的问题。

但是win32下,使用VS编译,发现了这个库中产生了N多语法错误。进去一看,发现这个C的库,在VS中,便是typename这样的也被自动显示为关键字 ------ typename在C里面并不是关键字。

在找不到解决方案的前提下,我打开3.2的工程进行对比,发现在3.2的工程打开这个文件,其中typename没有显示为关键字。只有在win平台VS2013下,并且是v3.3rc1的工程下,vs才会将这个自定义的库里面的.C文件里面的typename认作是关键字。(同为3.3rc1的工程,在xcode下,这个typename就不是关键字)

按照这个对比法,感觉应该是VS的工程环境设置,但是却不知道如何定位到这个问题,请问开发人员可否帮忙解决或指导一下问题原因。

另外,我试过在文件中增加#ifdef __cplusplus
extern “C” {
#endif

并没有起到作用。

开发确实可以在mac下面,但是策划和测试们都是windows的机器啊,还是要编译windows给他们用啊。。。求指导解决方法,感激不尽~~~

自定义库的话你可以修改这个c,换一个名字应该可以吧。

在库工程上点右键,选"属性–配置属性-c/c+±高级–编译为",把"编译为C++“修改成"编译为C”