Objective c &引用;使用未声明的标识符';strchr'&引用;在Xcode中构建时

Objective c &引用;使用未声明的标识符';strchr'&引用;在Xcode中构建时,objective-c,xcode,Objective C,Xcode,到目前为止,我的Objective-C项目在Xcode IDE中或使用以下脚本行编译了fine: xcodebuild -scheme ObjCHelper -sdk iphonesimulator -configuration Debug -xcconfig ./ObjCHelper.xcconfig clean build echo "Built ObjCHelper for simulator" xcodebuild -scheme ObjCHelper -sdk ip

到目前为止,我的Objective-C项目在Xcode IDE中或使用以下脚本行编译了fine:

xcodebuild -scheme ObjCHelper -sdk iphonesimulator -configuration Debug -xcconfig ./ObjCHelper.xcconfig clean build
echo "Built ObjCHelper for simulator"
xcodebuild -scheme ObjCHelper -sdk iphoneos -configuration Debug -xcconfig ObjCHelper.xcconfig clean build
echo "Built ObjCHelper for iPhone"
(发布时类似)。 在升级到Xcode 12.5(12E262)之后,我现在遇到了许多上述类型的错误。以下是生成输出的示例:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring:77:9: error: no member named 'strncmp' in the global namespace
using ::strncmp;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring:78:9: error: no member named 'strcoll' in the global namespace
using ::strcoll;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring:79:9: error: no member named 'strxfrm' in the global namespace
using ::strxfrm;
      ~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring:82:9: error: no member named 'strcspn' in the global namespace
using ::strcspn;
      ~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.   
模拟器和iphoneos构建都以同样的方式失败。 看来升级后找不到C++ SDK的一部分——我该如何修复这个问题?

我尝试卸载Xcode并重新安装,但问题是相同的

编辑:它在同事的Mac上的Xcode 12.5中构建OK。无论如何,我试着将版本恢复到12.3,但问题仍然存在

框架和标题搜索路径设置如下:
当我卸载并重新安装Xcode时,我删除了Application/Xcode.app。据我所知,工具链在这里,在Contents/Developer/toolschains中。如果我已经正确理解了,XCODE不应该在这个位置之外搜索C++文件?

当你手动地包含那些C++标题并在XCoad中的源中右键点击它们时,你会在哪里结束?当您创建一个空白项目并执行相同操作时,您会在哪里结束?在我的项目中,当我查看string.h时,我会在预期的位置结束,即系统标题搜索路径。Xcode正在抱怨string.h的内容。我刚刚创建了一个新的空项目,并将其中一个Objective-C类的内容复制到新文件中。它构建起来没有问题。在这一点上,我正在考虑将所有内容复制到一个新项目中,然后放弃旧项目。即使这是更多的工作,也有点安全。除此之外,您仍然可以在命令行上比较包含scheme和build设置的xcode项目文件。这样一来,问题就显而易见了。然后你可以通过分享你的发现在这里获得一些分数。所以整件事不是白做的。