XCode 15 编译错误:导入 C++ 模块“zlib”出现在 extern“C”语言链接规范中

问题描述 投票:0回答:2

我正在尝试使用 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"
但我想知道是否有更简单的方法来解决这个问题问题。
    

c++ ios c zlib xcode15
2个回答
2
投票
cocoapods-patch

是一个 C++ 功能,在 C 中无效,该块中的进一步代码预计是 C。

zlib.h 有自己的 

extern "C" {

,当您在

extern "C" {
中包含 zlib.h 时,您会嵌套
extern "C" {
,并且编译器会警告您:在需要 C 代码的地方满足 C++ 代码。
不要将 zlib.h 包含在 

extern "C" {

块中,将最后一个移到所有包含之后。

    


0
投票
extern "C" {

中作为右大括号的

#ifdef
。简单地替换为:
...

就是这样。 zlib.h 已经

包含守卫和#include "zlib.h"

    

© www.soinside.com 2019 - 2024. All rights reserved.