Per i percorsi relativi, ecco cosa ho fatto. Sono consapevole dell'età di questa domanda, voglio semplicemente contribuire con una risposta più semplice che funzioni nella maggior parte dei casi:
Supponi di avere un percorso come questo:
"path/to/file/folder"
Per qualche ragione, i file eseguibili basati su Linux realizzati in eclipse funzionano bene con questo. Tuttavia, Windows diventa molto confuso se viene fornito un percorso come questo con cui lavorare!
Come detto sopra ci sono diversi modi per ottenere il percorso corrente per l'eseguibile, ma il modo più semplice che trovo funzioni un incantesimo nella maggior parte dei casi è quello di aggiungere questo al FRONT del tuo percorso:
"./path/to/file/folder"
Basta aggiungere "./" per farti ordinare! :) Quindi puoi iniziare a caricare da qualsiasi directory desideri, purché sia con l'eseguibile stesso.
EDIT: Questo non funzionerà se provi ad avviare l'eseguibile da code :: blocks se è l'ambiente di sviluppo in uso, come per qualche ragione, code :: blocks non carica roba nel modo giusto ...: D
EDIT2: Alcune nuove cose che ho scoperto è che se specifichi un percorso statico come questo nel tuo codice (Supponendo che Esempio.data sia qualcosa che devi caricare):
"resources/Example.data"
Se avvii quindi l'app dalla directory effettiva (o in Windows, crei un collegamento e imposti la directory di lavoro sulla directory dell'app), funzionerà così. Tienilo a mente quando esegui il debug di problemi relativi a percorsi di risorse / file mancanti. (Soprattutto negli IDE che impostano la directory di lavoro errata quando si avvia un exe build dall'IDE)