2012-03-07 15 views
9

quando sviluppo in C++ su un filesystem che non è case sensitive, mi mancano i problemi comeSimulazione sensibilità caso su un filesystem che non è case sensitive

#include "File.h" 

se su disco è in realtà file.h.

Il problema viene visualizzato solo quando alla fine provo a compilare il codice su un filesystem sensibile al maiuscolo/minuscolo.

Come si simula la distinzione tra maiuscole e minuscole su un file system (come l'impostazione predefinita di OSX) che non distingue tra maiuscole e minuscole?

Edit: Sto cercando una soluzione automatizzata, uno che posso correre, ora e in futuro con "la semplice pressione di un pulsante".

Sembra anche essere perfettamente buono per denominare rigorosamente i file in C++ dopo il nome esatto della classe, incluso il caso. Quindi SuperDuperClass apparirebbe in SuperDuperClass.h. Una soluzione che richiede nomi di file in minuscolo non è adatta.

+2

È necessario simulare la distinzione tra maiuscole e minuscole oppure è sufficiente filtrare la sorgente e convertirla in minuscolo quando necessario? –

+0

Probabilmente la migliore interruzione di costruzione in caso di mancata corrispondenza del caso. Vuoi che il tuo codice si compili indipendentemente dal filesystem. –

+0

@AndrewWhite Sì, assolutamente. Sto davvero cercando un modo per far sì che la costruzione si interrompa anche se sono su un sistema che non fa distinzione tra maiuscole e minuscole. – Calaf

risposta

5

Su Mac OS X, è possibile utilizzare Utility Disco per creare un file system con distinzione tra maiuscole e minuscole su un'immagine disco.

case sensitive DMG

+0

Questo è solo un po 'radicale; non diresti? Va bene, garantito, non ho bisogno di pulire il mio disco principale e reinstallare il sistema operativo. Basterebbe usare una chiavetta USB, ma una soluzione software per questo problema è davvero così difficile? – Calaf

+0

È possibile utilizzare HFS + CS su un'immagine disco. Aggiunta una foto per illustrare. :) – duskwuff

+0

Ma certo! Grazie!! – Calaf

1

Mi limiterò a lanciarlo. Utilizzare solo nomi di file minuscoli. Tuttavia, mi interessa una risposta più completa e verificabile.

+0

Cosa non è verificabile nella risposta? Puoi facilmente cercare il tuo albero dei sorgenti per nomi di file che non sono tutti in minuscolo, e anche grep le tue #include direttive per trovare istanze come "File.h". – Kaz

+0

Inoltre, sviluppate tale abitudine che non digitate mai #include "File.h" per sbaglio. – Kaz

+0

Ora ho aggiunto una sezione "Modifica" per chiarire la domanda. – Calaf

0

sarei tentato di scrivere qualcosa come FileMon (a correre esternamente), e solo monitorare le chiamate di accesso ai file dal vostro IDE per il file system per verificare caso corrisponde. È improbabile che tu possa ottenere qualche controllo automatico dall'IDE o dal sistema operativo (almeno, senza sporcare il file system). D'altro canto, un'utilità separata che monitora l'accesso ai file potrebbe facilmente catturare tali problemi (una volta superato il rischio di far funzionare il monitoraggio).

Il mio 2c, comunque.

+0

Scrivere qualcosa come FileMon non è certo un breve esercizio. In tal caso, potrei anche scrivere un preprocessore in C++ con la funzionalità aggiunta, ma spero ancora che esista una soluzione semplice - una, ad esempio, che rimandi alle linee offensive semplicemente combinando alcune utility unix standard. – Calaf

Problemi correlati