强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++

force to compile a specific file as Objective-C/file type, but the entire project as Objective-C++

本文关键字:编译 文件 C++ Objective 项目 Objective-C 类型      更新时间:2023-10-16

我正在为已经存在的项目添加一些功能。它按预期工作。

然后,我在这个项目中添加了一些来自开放库的文件。

现在,Xcode无法编译整个项目。

调查原因,我发现问题出在"将源代码编译为"标志上,它默认设置为"Objective-C++"。

将该标志切换到其他值会导致Xcode抱怨。在任何情况下都有数百个错误。我认为之前的开发人员这样做是为了避免将.c、.cpp、.m重命名为.mm。他已经不在了。所以,很难说。

知道怎么解决这个问题吗?我看到几个选项:

  1. 或者根据需要重命名文件。这意味着数百文件已重命名。或者
  2. 我强制Xcode将特定文件编译为Objective-C/文件类型,但整个项目为Objective-C++或
  3. 我创建了一个小项目,然后生成了一个共享库

我想继续选项2。有可能吗?如何?

还有其他想法吗?

感谢

我采用了最简单的方法:强制Xcode将特定文件编译为Objective-C,但将整个项目编译为Objective C++。

在Build Phases>"Compile source as"中为每个文件添加了编译器标志-x objective-c