随着我当前的Xcode项目变得越来越大,我注意到,当我从emacs更改单个非头文件时,Xcode似乎经常“重新编译世界”。不总是,但很多。我认为它可能一直都是这样做的,但是当项目很小时,我从未注意到或关心过。既然这个项目相当大,那绝对会让我的工作效率下降。我怎么能阻止这个?
答案 0 :(得分:0)
(是的......回答我自己的问题[https://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question])。
我花了相当多的跟踪来确定这个...但绝对值得。
归结为emacs创建的锁定文件,用于检测来自多个emacs进程的同时编辑。这些文件是(无效的)符号链接来自。#< filename>到< host:pid>。 Xcode绝对讨厌这些文件(我使用的其他一些工具也是如此......虽然我现在对它们的内容进行了消息......甚至可能是xcodebuild
。)Xcode.app实际上并没有提出任何文件错误,但它似乎放弃了它的依赖信息。这些锁定文件不是备份文件:它们存在于您更改文件内容但尚未保存的情况下,因此您所获得的行为只是在emacs缓冲区中进行本地更改会导致“重建世界” “即使没有任何东西得救。
此时,没有任何方法可以禁用这些锁定文件。几个月前,这个问题在emacs列表中提出,但没有任何解决方案就消失了。
要解决此问题,必须在编译时禁用锁定文件。您执行正常的配置舞蹈,然后在src/config.h
中,在操作系统和机器配置的#include
之后添加#undef CLASH_DETECTION
我已经向Apple提出了雷达。