You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 15报错:在extern "C"规范内导入C++模块'Darwin.C.time'

解决Xcode 15中“Import of C++ module 'Darwin.C.time' appears within extern "C" language linkage specification”错误

方法一:提前导入系统头文件

把可能触发C模块导入的系统头文件(比如time.h)移到extern "C"代码块之外,避免在C语言链接块内间接引入C模块。修改后的代码如下:

#include <time.h>
#if defined(__cplusplus)
extern "C"
{
#endif
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/imgutils.h>
#include <libswscale/swscale.h>
#include <libswresample/swresample.h>
#if defined(__cplusplus)
}
#endif

方法二:禁用Clang模块导入功能

在Xcode的项目Build Settings中,找到Enable Modules (C and Objective-C)选项,将其设置为NO。这样会回到传统的头文件包含方式,避开模块导入和extern "C"的冲突。

方法三:拆分FFmpeg头文件的extern "C"包裹

如果前两种方法无效,可以尝试单独处理每个FFmpeg头文件:只对纯C接口的部分使用extern "C"包裹,而对于内部可能引入C代码的头文件,单独在C环境下直接包含(不过这种方式需要你对FFmpeg头文件结构有一定了解,操作相对繁琐)。


内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:47:42