View Full Version : [C\C++] col GCC, non riesco ad avviare gli eseguibili
Zero-Giulio
11-03-2009, 15:17
Sto cominciando a programmare in Linux...
Ho i miei .c e un .h
Da riga di comando (su Fedora), digido:
gcc whitney.h main.c (altri .c) -o nome_eseguibile -Wall -lm
e il gcc compila senza problemi, e mi genera l'eseguibile (si chiama eseguibile?) nome_eseguibile.
Poi, però, quando faccio
./nome_eseguibile
mi da errore. Dice permission denied.
Cosa sbaglio?
Forse nei comandi che do da riga di comando?
Eppure ho seguito due guide, ed entrambe dicevano le stesse cose. :-(
blu_eye4
11-03-2009, 18:58
l'header non credo si debba passare esplicitamente al gcc. per il resto sembra più questione di permessi...
neanche a me risulta che si debbano passare gli header nella compilazione... a permessi come stai messo? :stordita: (se è una cacchiata, perdono...)
Zero-Giulio
11-03-2009, 19:16
Metto sempre il su e poi digito la password. Nella riga di comando c'è sempre root@...
Il problema, cmq, me lo da anche con singoli file .c
Compila e fa quel che deve fare senza darmi errori. Quando poi però vado a avviare l'eseguibile, mi dice:
permission denied
:-(
Zero-Giulio
12-03-2009, 08:13
Vabbè, ma cosa cambia root o normale ai fini della compilazione?
Vabbè, ma cosa cambia root o normale ai fini della compilazione?
Non compilare come root. Prova senza...
Dacci l'output di:
ls -la nome_eseguibile
Zero-Giulio
12-03-2009, 13:49
Allora, ho rifatto tutto non da root...
Ho preso un semplice .c (sta tutto li, niente header o altro).
Ho fatto
gcc LeggiGmsh.c -o leggigmsh -lm -Wall
nessun errore, nessun warning. Crea il file leggigmsh.
Poi, se faccio
ls -la leggigmsh
trovo
-rw-rw-rw- 1 root root 7971 2009-03-12 14:45 leggigmsh
se invece faccio ./leggigmsh
esce
./leggigmsh: Permission denied
Zero-Giulio
12-03-2009, 16:12
Penso di aver risolto.
Il punto è che ho Linux su macchina virtuale, e stavo lavorando con files scritti da Windows su una cartella in comune tra l'host e il guest.
Il problema penso fosse questo.
Infatti se sposto il file nel disco del sistema guest tutto funziona bene.
Praticamente i .c sono nella cartella in comune. Compilo senza problemi, ma l'eseguibile ha diritti solo rw. Anche se faccio chmod non cambia niente: da riga di comando non da errori, ma i permessi rimangono quelli di prima.
Se invece copio l'eseguibile dentro il guest, chmod fa effetto e il ./ funziona.
Grazie a tutti per l'aiuto.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.