Mat*_*ner 2 c c++ linker extern linkage
GCC,MSVC或Clang,或某些组合支持设置链接默认为C?
我有一个大型的混合C/C++项目,虽然使用C链接在C++源代码中导出符号既简单又合乎逻辑,但这些相同的源代码假设项目其余部分的内容都在C++链接下.
当前的情况要求我明确地包装C源代码中定义的C源代码以及C++源代码从C源代码中使用的所有内容extern "C++".
最重要的是,我不能放置extern "C"整个源文件或头文件,因为实际的C++内容会抱怨.(例如来自#include <memory>我定义的或模板.)
头文件中的标准模式是:
#ifdef __cplusplus
// C++ stuff
extern "C" {
#endif
// C/C++ stuff
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
我不确定你还有其他选择.必须在任何地方使用C链接声明C/C++内容.特定于C++的东西必须在各处用C++链接声明.
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |