【发布时间】:2011-02-19 10:54:19
【问题描述】:
我有一个由用户使用 C++ 类和 应该使用相同的类来配置一个程序 只能使用 C99(开放 CL 语言)的子集。
所以我的问题是: 有没有办法将 C++ 编译为 C-Code?p>
开源会很棒!
【问题讨论】:
-
C++ to C conversion的可能重复
-
很高兴地说这是一个问题的重复,该问题被关闭为不是一个真正的问题......
-
另外请注意,将 sn-p 转换为单个类与以 C 源代码为目标编译整个 C++ 程序之间存在差异。下面的答案中提到的一些工具不会让您从 C 程序中真正调用您的配置类(用 C++ 编写并转换为可能不可读的 C),或者至少不会轻松做到这一点。如果该进程完全导出 C++ 函数,那么它们的名称将被破坏,这是第一个障碍。
-
使某些 C++ 代码可从 C 代码调用的常用方法不是将其转换为 C。而是在 C++ 代码周围放置一个包装 API,包括
extern "C"函数,然后使用 C++ 编译器对其进行编译,该编译器生成与 C 编译器使用的相同链接器兼容的目标文件,并将所有内容链接在一起。如果您的平台不提供兼容的 C 和 C++ 编译器,转换将是最后的手段(我认为最可能的原因是它根本不提供 C++ 编译器/运行时)。 -
如果遇到我的问题,我只是在处理没有继承的简单类,我正在使用 Open CL C 平台link,它被认为是用于显卡等等,我不明白一个 C++ 编译器。我的问题是 CUDA 部分支持 C++,我的程序应该完成一个软件,所以最好将源代码指定为 c++ 类,而不是做两次容易出错的工作。
标签: c++ c compiler-construction compiler-theory