Pie*_*o M 5 gcc mingw inline redefinition
我有一些Microsoft代码(XLCALL.CPP),我试图用CodeBlocks/MinGW编译.
在这一行,我得到一个编译时错误:
__forceinline void FetchExcel12EntryPt(void)
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误消息:
XLCALL.CPP | 36 |错误:'void'之前的预期构造函数,析构函数或类型转换
此错误是预期的,因为__forceinline是Microsoft特定的语言添加,但未被GCC识别.
因此,为了编译,我尝试在CodeBlocks中添加thiese定义(项目构建选项/编译器设置/ #define):
#define __forceinline inline
#define __forceinline
Run Code Online (Sandbox Code Playgroud)
但是我仍然得到同样的错误.
如果在对话框中我没有指定#define预处理器命令(即:)__forceinline inline
,这就是我得到的:
XLCALL.CPP | 36 |错误:数字常量之前的预期unqualified-id
有没有办法编译这样的代码,而不使用 Visual C++?
Mat*_*ery 11
__forceinline=inline
正如您在评论中所指出的那样,语法是因为这些设置变成了-D
GCC的选项.
请注意,inline
GCC强烈暗示该函数应该内联,但不保证.GCC等价物__forceinline
是always_inline
属性 - 例如这段代码:
#define __forceinline __attribute__((always_inline))
Run Code Online (Sandbox Code Playgroud)
或者相当于这个设置:
__forceinline="__attribute__((always_inline))"
Run Code Online (Sandbox Code Playgroud)
(但这可能是不必要的:如果在使用MSVC编译时强制使用此函数有一些特别好的理由,那么在使用完全不同的编译器时,这个原因可能无效!)
归档时间: |
|
查看次数: |
9586 次 |
最近记录: |