2012-10-11 10 views
5

Próbuję uruchomić program Hello World, ale jestem uzyskiwanie błądPoczątkujący: błąd składni przed int main()

./ex1.c: line 3: syntax error near unexpected token `(` 
./ex1.c: line 3: `int main (int argc, char *argv[])' 

lub

./ex1.c: 3: ./ex1.c: Syntax error: "(" unexpected 

lub

./ex1.c:3: unknown file attribute: i 
./ex1.c:4: parse error near `}' 

Dziwne jest to, że uruchomiłem ten sam program wcześniej i nie miałem żadnych problemów.

Nie jestem pewien, czy te problemy są powiązane, ale problem wystąpił po zainstalowaniu Valgrind, aby uruchomić ćwiczenie 4 w Learn C The Hard Way. Otrzymałem komunikat o błędzie, w którym odmówiono zgody, a które naprawiłem przy użyciu chmod +x. Wtedy wszystkie moje pliki .c potrzebowały pozwolenia, którego wcześniej nie robili. Zrobiłem wtedy chmod -R 0777 dla katalogu z wszystkimi moimi plikami ćwiczeniowymi .c. Tak więc problem z uprawnieniami został naprawiony, ale potem zaczął się powyższy błąd. Mogą one być zakończone niezwiązane, ale chciał dołączyć na wszelki wypadek.

+7

Jeśli masz problemy z * kodem *, proszę to opublikować. W przeciwnym razie, w jaki sposób oczekujesz od nas pomocy? Wszystko, co mogę powiedzieć, to to, że masz nieoczekiwane '(' w linii 3. –

+0

Ale z tego mogę powiedzieć, że on uruchamia plik '.c', i że powłoka narzeka na składnię C ... – nneonneo

+1

Nie * chcesz, aby twoje pliki '* .c' miały uprawnienia do wykonywania, a ty rzadko chcesz * cokolwiek * mieć 777 uprawnień (które dają uprawnienie do odczytu i zapisu-wykonywania dla wszystkich w systemie) –

Odpowiedz

7

Nie można uruchomić pliku a .c tylko za pomocą ./ex1.c; musisz najpierw wykonać kompilację w program, który może być uruchomiony.

Zakładając, że masz maszynę z systemem Linux/OS X, użyj kompilacji gcc -Wall ex1.c -o ex1 (lub, prościej, make ex1). Następnie możesz ./ex1 uruchomić program.

+2

Zrozumiałem, co robiłem źle, użyłem make, ale wciąż wychodziłem. c po ./ex1. Dzięki! – MParker

+1

'gcc -Wall ...' - zawsze - dziękuję –

+0

@PaulR: tak, dobra rozmowa – nneonneo

-4

Po kompilacji programu za pomocą make "nazwa twojego programu" (np. Uczyń mario w tym przypadku), po prostu użyj ./"Twoja nazwa programu "(w tym przypadku ./mario). NIE dodawaj .c podczas uruchamiania programu.

+0

To są instrukcje użycia Makefiles, który prawdopodobnie nie jest związany z błąd składni @Marka ma. – Jonatan

+2

Podobną odpowiedź podano _3 lata temu. –

Powiązane problemy