Quando si esegue un programma C che ho compilato con gcc
dal terminale, viene visualizzato un errore di autorizzazione negato.Autorizzazione negata l'esecuzione di qualsiasi programma ccc compilato gcc su OS X (10.8.2) Mountain Lion
Per iniziare, ho verificato e riparato le autorizzazioni sul mio disco (prima di fare questo, lo stesso problema stava accadendo).
Per illustrare e isolare il problema, te lo mostrerò cosa succede con questo ultra-semplice programma Ciao Mondo (con altri programmi, si verifica la stessa cosa):
#include <stdio.h>
main()
{
printf("Hello World");
}
Ora, risparmio che questo il mio desktop come helloworld.c
. A questo punto, dal desktop, un ls -l
rendimenti:
total 8
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
ho quindi compilare con gcc -c helloworld.c -o helloworld
(Ho anche provato la compilazione senza il flag -o
con gli stessi risultati). Nessun avviso o errore. Un ls -l
restituisce ora:
total 16
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
-rw-r--r-- 1 michael staff 724 Mar 13 14:16 helloworld.o
tentativo di eseguire l'output di gcc, con ./helloworld.o
rendimenti:
-bash: ./helloworld.o: Permission denied
Solo per il gusto di debug, se eseguo con sudo (sudo ./helloworld.o
), restituisce:
sudo: ./helloworld.o: command not found
Ora, se tento di impostare il flag eseguibile utilizzando chmod +x helloworld.o
, come è stato consigliato da un sacco di ricerca di r isultati che ho trovato, ls -l
rendimenti:
total 16
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
-rwxr-xr-x 1 michael staff 724 Mar 13 14:16 helloworld.o
Tuttavia, il tentativo di eseguire con ./helloworld.o
ora ritorna:
-bash: ./helloworld.o: Malformed Mach-o file
Ora, per il debug di sake, where gcc
rendimenti:
/usr/bin/gcc
Così , puoi vedere che non sto utilizzando terze parti gcc
.
Qualcuno sa quale potrebbe essere il problema? Ho provato a cercare in giro, ma non sono riuscito a trovare alcuna soluzione funzionante. Stavo avendo lo stesso problema in precedenza e da quando ho reinstallato di nuovo OS X (per ragioni diverse) e sto ancora avendo questo problema con un ambiente di sviluppo pulito e organizzato. Per riferimento, sono su OS X 10.8.2 e ho Xcode 4.6 insieme all'ultima versione degli strumenti Xcode Command Line (dal sito Web degli sviluppatori di Apple). Non ho installato gcc da Homebrew o da qualsiasi altra fonte di terze parti; è il gcc fornito con gli strumenti Xcode Command Line.
Grazie mille per il vostro aiuto! Apprezzo molto che tu abbia dedicato del tempo a leggere, diagnosticare e offrire il tuo aiuto. :)
Ho avuto questo problema quando ho creato foobar in cui foobar.c ha avuto un errore. Quando ho risolto l'errore, ha funzionato. – quantumpotato