Sei sicuro? Controlla attentamente in quale cartella sei e cosa hai scritto nella fopen
Sei sicuro? Controlla attentamente in quale cartella sei e cosa hai scritto nella fopen
No MP tecnici (non rispondo nemmeno!), usa il forum.
in fopen dove?
io scrivo solo da terminale ./nomeEseguibileCreato
ma è riferito a questo file oppure potrebbe non trovare i file necessari all'avvio perchè stanno in un'altra cartella?
spostando l'eseguibile nella cartella in cui sono presenti i due file che servono per l'avvio ha funzionato...
il problema è che adesso forse non trova i file presenti nell'altra cartella...
come ti dicevo ho infatti una cartella e 2 file
Scusa Dany, forse non ci capiamo ...
Come "fopen dove" ?? La fopen è una funzione che tu hai usato nel tuo programma per aprire un file.
Se stai eseguendo il tuo programma e c'è un errore devi controllare il codice sorgente che hai scritto e compilato.
Stai seguendo un esempio del libro ? C'è una fopen nel tuo programma sorgente C ? Controlla quella riga e vedi dove sono i file da aprire ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
si si ho capito... pensavo fosse riferito non al codice ma all'apertura del programma!
Comunque l'eseguibile viene generato anche già direttamente da Eclipse in una qualche sottocartella... non starei a ricompilare "a mano", rischi di perderti pezzi.
Amaro C++, il gusto pieno dell'undefined behavior.
Lo so ma quello creato da Eclipse non mi funzionava...
Adesso ho risolto, l'unico problema è che copiando il tutto in un altro pc quando provo ad avviare l'eseguibile da terminale mi dice 'permesso negato'
E' necessario ricompilare e creare un nuovo eseguibile nell'altro pc?
Hai dato i permessi d'esecuzione al file?
No MP tecnici (non rispondo nemmeno!), usa il forum.
come fare?
Non mi torna, Eclipse fa lo stesso mestiere che faresti a mano con g++... non è che hai semplicemente provato con doppio click? In genere su Linux se fai doppio click non viene aperto automaticamente un terminale, per cui se l'applicazione non è grafica semplicemente non si vedrà niente.
L'hai trasportato su una chiavetta formattata fat32? In tal caso, non vengono preservati i permessi, e per rendere il file eseguibile devi dare chmod +x nomefile. In ogni caso, se vuoi trasportare l'eseguibile su macchine con versioni di Linux diverse ti conviene fare una compilazione statica (per evitare di dipendere da versioni particolari di librerie, che potrebbero differire). Dato però che non è possibile linkare staticamente la libreria C, se vuoi avere come target distribuzioni con glibc datate in genere l'unica è compilare sulla più vecchia delle distribuzioni che ti interessano (glibc è backwards-compatible, ma non sempre forward-compatible; i dettagli delle rotture di ABI qui).Adesso ho risolto, l'unico problema è che copiando il tutto in un altro pc quando provo ad avviare l'eseguibile da terminale mi dice 'permesso negato'![]()
Ultima modifica di MItaly; 26-02-2015 a 00:56
Amaro C++, il gusto pieno dell'undefined behavior.