使用Visual Studio 2010编译C库
我在这里找到了一个由其他人编写的C库,以非常好的方式在Mac上编译它并生成一个ruby包装器。
我在Windows上,我需要为.Net生成一个包装器。 我对C或C ++一无所知。
- 我创建了一个只
%include
.h
文件的.i
文件,并使用Swig生成C#文件和xxx_wrapper.c
文件。 - 我用Visual Studio 2010创建了一个空的C ++项目,并包含了项目的所有
.h
和.c
文件(生成ruby包装器的文件除外) -
现在,当我尝试编译时,每次有内联函数时都会出现一些编译错误:
file.c(54): error C2054: '(' expected after 'inline'
file.c(54): error C2085: 'swap_img' : is not in the formal parameters list
file.c(54): error C2143: syntax error: missing ';' before '{'
我在这里读到可能是因为VS尝试将我的c文件编译为c ++。 但是我该怎么做? 我无法改变代码中的任何内容(我不会尝试),所以我只需要“修复”项目。
谢谢 !
在Visual Studio 2010支持的C语言版本中,没有inline
单词。 只有C ++有inline
。 我不认为inline
成为C的一部分,直到最新版本的C标准(C11),没有人支持。
相反,你应该使用单词__inline
,这意味着同样的事情。 下划线暗示这是一个“扩展”,这不是标准C的一部分。
或者,您可以在每个文件的开头放置#define inline __inline
,或者在开头的#include
d中放入.h
头文件。 这会在每次出现时自动将inline
单词转换为__inline
。
(编写该代码的人可能正在使用不同的编译器,选择在没有下划线的情况下添加inline
编译器。它仍然是“扩展”,因为它不是标准C的一部分。)