我有一个由许多应用程序组成的 CMake 项目。这些应用程序中的大多数都是正在运行的测试应用程序......嗯......测试。
我发现了一个奇怪的行为,这开始让我抓狂:当我编译应用程序时,Xcode 会重新编译每个已更改的文件。这很正常。但是当我切换到另一个应用程序时,它甚至会重新编译那些在先前编译中编译的
.o
文件。
我不知道这在 Mac 上是否正常,但我也在 Linux 和 MS Windows 上使用我的项目,如果我编译一个应用程序并切换到另一个应用程序,那么编译器不会重新编译之前编译过的文件在编译另一个应用程序期间。
有没有办法用 Xcode 设置相同的行为?
我正在使用:
我的代码是用 C++ 编写的,并使用 ObjC-Runtime 与操作系统通信(它是一个 GUI 应用程序)
我发现了问题所在:每个应用程序确实包含在单独的目录中,其所有依赖项都放在其中。
要解决这个问题,只需添加:
if(APPLE)
set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
endif()
在(重要!)顶级
CMakeLists.txt
文件的最后。