Podczas wykonywania dowolnego programu C, który skompilowałem z gcc
z terminala, pojawia się błąd odmowy uprawnień.Zgoda na odmowę wykonania dowolnego programu c z kompilacją gcc na OS X (10.8.2) Mountain Lion
Aby rozpocząć, zweryfikowałem i naprawiłem uprawnienia na moim dysku (przed wykonaniem tego problemu wystąpił ten sam problem).
Aby zilustrować i wyizolować problem, pokażę ci, co się dzieje z tym bardzo prosty program Hello World (z innymi programami, występuje to samo):
#include <stdio.h>
main()
{
printf("Hello World");
}
Teraz mogę zapisać to mój pulpit jako helloworld.c
. W tym momencie, z pulpitu, an ls -l
Powroty:
total 8
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
Następnie skompilować z gcc -c helloworld.c -o helloworld
(Ja również próbowałem kompilacji bez flagi -o
z tych samych wyników). Brak ostrzeżeń i błędów. ls -l
teraz powraca:
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
Próbując wykonać wyjście gcc, z ./helloworld.o
Powroty:
-bash: ./helloworld.o: Permission denied
Właśnie przez wzgląd na debugowania, jeśli mogę wykonać z sudo (sudo ./helloworld.o
), zwraca:
sudo: ./helloworld.o: command not found
teraz, gdy próbuję ustawić flagę wykonywalny korzystając chmod +x helloworld.o
, jak zalecono w wielu wyszukiwania R YNIKI Znalazłem, ls -l
Powroty:
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
jednak, próbując wykonać z ./helloworld.o
teraz powraca:
-bash: ./helloworld.o: Malformed Mach-o file
Teraz do debugowania sake, where gcc
Powroty:
/usr/bin/gcc
Tak , widzisz, że nie używam strony trzeciej gcc
.
Czy ktoś wie, co może być przyczyną problemu? Próbowałem już szukać, ale nie znalazłem żadnych działających rozwiązań. Miałem ten sam problem wcześniej i od tamtej pory ponownie zainstalowałem system OS X (z różnych powodów) i nadal mam ten problem z czystym i zorganizowanym środowiskiem programistycznym. Dla porównania pracuję w systemie OS X 10.8.2 i mam Xcode 4.6 wraz z najnowszą wersją narzędzi Xcode Command Line (od strony dewelopera Apple'a). Nie zainstalowałem gcc z Homebrew lub z żadnego innego źródła zewnętrznego; jest to gcc dostarczany z narzędziami Xcode Command Line.
Dziękuję bardzo za pomoc! Naprawdę doceniam, że poświęciłeś swój czas na przeczytanie, zdiagnozowanie i zaoferowanie swojej pomocy. :)
Miałem ten problem, gdy zrobiłem foobar gdzie foobar.c miał błąd. Kiedy naprawiłem błąd, zadziałało. – quantumpotato