我试图用Xcode 15 RC编译一个现有的项目,该项目使用了一些内部使用zlib
的依赖项。zlib.h
使用
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ZLIB_H
#include "zlib.h"
#endif
...
我得到这个错误:Import of C++ module 'zlib' appears within extern "C" language linkage specification
在Xcode 14上一切都很好。zlib
现在是c++库吗?
我可以将包含移出extern "C"
范围,但我的POD依赖失败,我无法控制它们,我可以尝试使用cocoapods-patch
,但我想知道是否有更简单的方法来解决这个问题。
3条答案
按热度按时间j13ufse21#
extern "C" {
是一个C功能,在C中无效,该块中的其他代码应该是C。zlib. h有自己的
extern "C" {
,当你在extern "C" {
中包含zlib. h时,你会得到嵌套的extern "C" {
,编译器会警告你:C代码符合预期的C代码。不要在
extern "C" {
块中包含zlib. h,将最后一个包含的内容移到后面。63lcw9qa2#
去掉所有这些,以及
...
中的右括号#ifdef
。将其简单地替换为:zlib. h已经 * 有 * include guard和
extern "C"
了。wsxa1bj13#
如果取消选中以下选项,则可以隐藏错误: