繁体   English   中英

将 C 与 C++ 联系起来

[英]Linking C with C++

我有一个开源 C 项目,如果我尝试执行示例,它工作正常,但是如果我尝试使用 extern(包括所有带有函数定义的头文件)从 C++ 调用这些函数,则会抛出错误 undefined reference to function_name。 有人可以帮助我解决如何使用 C++ 正确包装 C 代码并通过仅包含 C 的头文件直接从 C++ 调用函数吗?

您需要extern "C"语言链接才能在 C++ 代码中声明 C 函数。

这(除其他外)可以防止 C++ 编译器对函数使用的名称修改

通常通过检查__cplusplus宏的存在,在头文件中使用条件编译添加extern "C"

#ifdef __cplusplus
extern "C" {
#endif

// Function declarations

#ifdef __cplusplus
} // End of the extern "C" block
#endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM