Perché a volte i link simbolici spariscono in Xcode?

1

I file sorgente di interesse sono su una condivisione di rete ospitata su una macchina Win7, ma i collegamenti simbolici sono creati su questo Mac usando ln -sf

Questi sono file .h, e a volte uno o più di essi non vengono trovati dal compilatore C ++. Ottengo un errore come foo.h non trovato, quando posso vederlo e leggere il contenuto (collegato a) usando il Finder.

La mia soluzione è copiare il file anziché link simbolici ad esso. Poi trovo che gli altri file (file .link symlink nella stessa directory che si collegano a file nella stessa directory sorgente, proprio come quelli "cattivi") non hanno problemi.

Anche le persone interessate sono diverse.

Qualche idea su cosa potrebbe causare questo? È iniziato quando si aggiorna Mac OSX a Mavericks, che ha un diverso codice di rete CIFS. Succede ancora con Yosemite.

Nota che il link simbolico funziona sul Mac in generale; Lo faccio su quel Mac, e anche quando si verifica l'errore in Xcode posso vedere il contenuto del file risolto come previsto nella vista Colonne nel Finder o con cat nel prompt di bash. È solo il problema del compilatore di Xcode.

Altri dettagli

I file fanno parte di un "framework" e del link (esempio)

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.

Avrò un errore nel trovare head5.h, e gli altri funzioneranno correttamente.

    
posta JDługosz 12.02.2015 - 07:25
fonte

1 risposta

2

I collegamenti simbolici sono spesso distrutti da alcuni strumenti di archiviazione, in particolare da quelli incorporati in alcune versioni di PHP, ad esempio. Prova a preparare e decomprimere un archivio e controlla se i collegamenti simbolici sono ancora attivi. Inoltre, i collegamenti simbolici non verranno salvati su NTFS o simili file system non-mac. Controlla se i link simbolici si rompono dopo aver effettuato l'accesso al computer da Windows.

    
risposta data 12.02.2015 - 07:32
fonte

Leggi altre domande sui tag