0

我在 xcode 上使用配置将源代码编译为 Objective-C++,但我添加了一个库,我想将其编译为 Objective-C,有办法吗?

我的配置:

//:configuration = Debug
CLANG_CXX_LIBRARY = libstdc++

//:configuration = Release
CLANG_CXX_LIBRARY = libstdc++

//:completeSettings = some
GCC_C_LANGUAGE_STANDARD
CLANG_CXX_LIBRARY
GCC_CW_ASM_SYNTAX

//:configuration = Debug
CLANG_CXX_LIBRARY = libstdc++
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp

//:configuration = Release
CLANG_CXX_LIBRARY = libstdc++
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp

//:completeSettings = some
GCC_C_LANGUAGE_STANDARD
CLANG_CXX_LIBRARY
GCC_CW_ASM_SYNTAX
GCC_INPUT_FILETYPE
4

1 回答 1

2

我不推荐你在这里做了什么。与其更改全局默认值,不如正确命名您的文件(.m对于 ObjC 和.mmObjC++,对于 C++,'.cpp')。如果由于某种原因这是不可能的,那么您可以选择要覆盖的单个文件。在“文件”列表中选择它们,打开检查器,然后在“身份和类型”字段中选择您想要的每个文件类型。应该可以通过这种方式将单个文件重置回 ObjC,但我建议保留默认设置并在绝对需要的地方覆盖。

将大部分代码编译为 ObjC++ 并不是一个好习惯。它不是一种得到很好支持的语言。它旨在作为 ObjC 和纯 C++ 之间的粘合剂。ObjC++ 在编译时和运行时会带来很多开销并导致性能损失(它在运行时也比 ObjC 或 C++ 使用更多的内存)。调试器和其他工具对它的支持最少。您当然不应该将其设为您的默认语言。有关该主题的更多信息,请参阅Wrapping C++ Final Edition

于 2013-02-23T01:27:38.493 回答