0

我有一个关于编译标志-fobjc-weak的问题。目前,我从事使用 CMake 生成的项目,它主要使用 C++ 和一些最小的目标 C 代码来运行应用程序。在研究编译标志时,我看到一些 Cmake 目标库是使用-fobjc-weak编译的,而有些则没有。这不是我在 CMake 中设置的标志,所以我假设它是由 XCode 自动添加的。我的问题是为什么?它来自哪里,这面旗帜出现的原因和含义是什么?我可能错过了一些东西,但我似乎无法找出这个标志是在哪个阶段添加的。

另一条信息是,我使用了一个 iostoolchain.cmake ,它与这个项目工具链完全相同。它有这样一行:

    #Check if Xcode generator is used, since that will handle these flags automagically
if(USED_CMAKE_GENERATOR MATCHES "Xcode")
  message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as generator.")

我真的不明白 Xcode 最终是如何决定添加哪些标志的,但这是我怀疑为什么我在编译时看到添加了这一行。

https://github.com/leetal/ios-cmake/blob/master/ios.toolchain.cmake

干杯!

4

0 回答 0