为什么符号链接有时会在Xcode中消失?


1

感兴趣的源文件位于Win7计算机上托管的网络共享上,但使用的是在此Mac上创建的符号链接 ln -sf

这些是.h文件,和 有时 C ++编译器找不到它们中的一个或多个。当我看到它并使用Finder读取(链接到)内容时,我收到类似foo.h的错误。

我的解决方法是将文件而不是符号链接复制到它。然后我发现其他文件(同一目录中的符号链接.h文件链接到同一源目录中的文件;就像“坏”一样)没有问题。

哪个受影响的人也会有所不同。

知道是什么原因引起的吗?它是在将Mac OSX更新为具有不同CIFS网络代码的Mavericks时开始的。优胜美地仍然会发生这种情况。

请注意符号链接 确实有效 在Mac上一般;我在那台Mac上制作它,即使它在Xcode中出现错误,我也能看到文件内容按照预期在Finder的Columns视图中解析,或者 cat 在bash提示符下。这只是Xcode编译器的问题。

更多细节

这些文件是“框架”和链接(示例)的一部分

cd /Volumes/There/blah/blah2/blah3/blah3/CocoaPods/Pods/BuildHeaders/Cheeseburger
ln -sf ../../Cheeseburger/Burger/head1.h
  ⋮ a bunch of files in same path, head2.h, head3.h, etc.

cd ../../Headers/Cheeseburger
ln -sf ../../Cheeseburger/Burger/head1.h
  ⋮ etc.

我会在找到head5.h时遇到错误,其他工作正常。


原始文件是在同一物理磁盘上,还是需要通过AFP或SMB挂载的文件?
Kent

符号链接和链接到的文件位于同一卷上。我将为Q添加更多细节。
JDługosz

Answers:


2

符号链接通常会被某些归档工具破坏,例如,某些版本的PHP中内置的归档工具。尝试打包和解压缩存档,并检查符号链接是否仍然存在。 此外,符号链接不会保存在NTFS或类似的非mac文件系统上。 从Windows计算机访问驱动器后,请检查符号链接是否损坏。


由于兼容性问题,我(重新)在该计算机上创建链接。如果Win工具破坏了它们,我会在这台Mac上重新制作它们。请注意他们 做工作 作为符号链接,特别是坏文件在Finder中可见并解析。也就是说,这不是链接被破坏的情况。 Finder,Preview中的链接很好, cat
JDługosz

这是不正确的NTFS:首先,NTFS和CIFS(SMB)共享 有本地符号链接;第二,Mac对于不受支持的文件系统有自己的回退机制,它使用普通的文本文件,它具有一些可识别的签名,以及链接到的名称。 Mac上的链接(从Mavericks开始!)也将被视为Windows主机上的真正符号链接,尽管它们与您在Windows上使用mklink(不起作用)所获得的链接不同
JDługosz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.