我正在尝试使用 XCode 15 RC 编译现有项目,该项目使用一些内部使用的依赖项。
zlib
包含使用
zlib.h
我收到此错误:
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ZLIB_H
#include "zlib.h"
#endif
...
XCode 14 上一切正常。Import of C++ module 'zlib' appears within extern "C" language linkage specification
现在是 C++ 库吗?
我可以将包含移出zlib
范围,但是我的 POD 依赖项失败并且我无法控制它们,我可以尝试使用
extern "C"
但我想知道是否有更简单的方法来解决这个问题问题。cocoapods-patch
是一个 C++ 功能,在 C 中无效,该块中的进一步代码预计是 C。
zlib.h 有自己的extern "C" {
,当您在
extern "C" {
中包含 zlib.h 时,您会嵌套 extern "C" {
,并且编译器会警告您:在需要 C 代码的地方满足 C++ 代码。不要将 zlib.h 包含在 extern "C" {
块中,将最后一个移到所有包含之后。
extern "C" {
中作为右大括号的
#ifdef
。简单地替换为:...
就是这样。 zlib.h 已经有
包含守卫和#include "zlib.h"
。