gpt4 book ai didi

c++ - 使用 Visual Studio 2010 编译 C 库

转载 作者:太空狗 更新时间:2023-10-29 21:20:31 24 4
gpt4 key购买 nike

我在这里得到了一个由其他人编写的 C 库,它有一种在 Mac 上编译它并生成 ruby​​ 包装器的非常好的方法。

我在 Windows 上,我需要为 .Net 生成一个包装器。我对 C 或 C++ 一无所知。

  • 我创建了一个 .i 文件,它只是 %include .h 文件,并使用了 Swig生成 C# 文件和一个 xxx_wrapper.c 文件。
  • 我用 Visual Studio 2010 创建了一个空的 C++ 项目,并包含了该项目的所有 .h.c 文件(生成 ruby​​ 的文件除外) wrapper )
  • 现在,当我尝试编译时,每次出现内联函数时都会出现一些编译错误:

    file.c(54): error C2054: '(' expected after 'inline'
    file.c(54):错误 C2085:“swap_img”:不在形式参数列表中
    file.c(54):错误 C2143:语法错误:缺少“;”在“{”之前

我已阅读 here这可能是因为 VS 试图将我的 c 文件编译为 c++。但是我该怎么做呢?我无法更改代码中的任何内容(我也不会尝试),所以我只需要“修复”项目。

谢谢!

最佳答案

在Visual Studio 2010支持的C语言版本中,没有inline这个词。只有 C++ 有 inline。我认为 inline 直到最新版本的 C 标准 (C11) 才成为 C 的一部分,目前还没有人支持它。

相反,您应该使用 __inline 这个词,意思是一样的。下划线暗示这是一个“扩展”,不是标准 C 的一部分。

或者,您可以将 #define inline __inline 放在每个文件的开头,或者放在 .h 头文件中,即 #included 开头。这会在每次出现时自动将单词 inline 翻译成 __inline

(很可能编写该代码的人使用的是不同的编译器,该编译器选择添加不带下划线的 inline。它仍然是一个“扩展”,因为它不是标准 C 的一部分。 )

关于c++ - 使用 Visual Studio 2010 编译 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com