Wyskakujący błąd przy kompilowaniu w C

Ostatnio bardzo często (ale nie zawsze) pojawia mi się błąd przy kompilacji, typu:

C:\Users\Serena\Documents\Ania\programowanie\moje ćw\collect2.exe [Error] ld returned 1 exit status.

Wyskakuje mi ten błąd nawet przy niektórych programach, które wcześniej(miesiąc temu) się kompilowały, a jak je teraz otwieram to już się nie kompilują. Co jeszcze zauważyłam, że jak otwieram plik typu c w devie to pojawia mi się taka informacja:

Could not open language file Polish.lng

 

Wkleję przykładowy program, przy którym to mi się pojawia między innymi:

 

#include<stdio.h>

 

int main()

{

int i;

for(i=‘a’;i<=‘z’;i++)

printf("%c\t", i);

system(“pause”);

return 0;

}

 

Z czym może być problem? Będę wdzięczna za pomoc.

  1. W ścieżkach nie używaj spacji i polskich znaków. Powodują tylko problemy

  2. Ten problem to brak polskiego tłumaczenia, źle się zainstalowało, instalka była niekompletna albo jeszcze coś innego.

Czy możesz mi powiedzieć w takim razie co powinnam zrobić? Zmieniłam już nazwy folderów bez polskich znaków i spacji, ale nie wiem co dalej zrobić, bo to nic nie pomogło, nawet jak przeinstalowałam dev’a. 

Tak, miałem to samo. W którejś wersji było naruszenie pamięci jak używałeś tablicy intowej o 20 elementach na stosie (19, czy 21 były ok). Tego IDE i co ono robi nie idzie ogarnąć, zmień IDE, rozwiąże wszystkie twoje problemy.

Ten błąd miałem często przy właśnie spacjach ale przy samym devie (dev zainstalowany w program files). Dwa to był brak uprawnień do zmiany execa (nie dało się go usunąć bo brak uprawnień lub używany).

W takim razie, możesz mi powiedzieć w jaki sposób mam zmienić IDE? 

Zainstaluj jakiekolwiek inne. Ja polecam od siebie Qt Creator.

Zainstalowałam już NetBeans i rzeczywiście jest poprawa :slight_smile: Dziękuje wszystkim za pomoc

Przepraszam, ze ciągnę ten temat jednak nadal jest coś nie tak. Za pierwszym razem mi się kompiluje (chociaż otwierają mi się dwie konsole), ale jak drugi raz kompiluje (a nic nie zmieniam w programie) to wyskakuje mi error 1.

A co jest oprócz tego ‘error 1’?

Dzięki za zainteresowanie enedil :slight_smile:

To samo w sumie co napisałam w pierwszym poście:

C:\Users\Serena\Documents\Ania\programowanie\mojeCw\collect2.exe [Error] ld returned 1 exit status.

Na innym komputerze w devie, ten program kompilował mi się bez problemu.

A pokażesz kod, czy to jest jakaś służbowa tajemnica?

Oczywiście, przykładowy, prosty program, przy którym nie działa np:

#include<stdio.h>

#include<string.h>

 

int main()

{

char str[10]=“sobota”;

char s[10];

printf("%s\n", str);

gets(s);

puts(s);

system(“pause”);

return 0;

}

 

albo:

 

#include<stdio.h>

 

int main()

{

int i;

for(i=‘a’;i<=‘z’;i++)

printf("%c\t", i);

system(“pause”);

return 0;

}

@kostek135: mówisz o błędzie wykonania, a tu jest błąd budowania (konsolidacji konkretnie). To dwie niezwiązane ze sobą sprawy (program nie ma szans się nawet wykonać)

 

Czyli po prostu program się nie zamyka, zostaje gdzieś w pamięci i blokuje plik, kompilator nie może go usunąć i wywala błąd. Ah jak miło wspominam programowanie pod Windowsem…

Sprawdź w menedżerze zadań czy ten exek dalej nie siedzi w procesach. I wyłącz antywirusa – te ■■■■■■■■■■ często tylko szkodzą i utrudniają życie programistów (jak np. 2-minutowe uruchamianie Hello Worlda).

 

W tych kodach nie ma niczego co by mogło powodować błędy, chyba żeby ten system(“pause”);.

@Razi, nie bylem nigdy wstanie określić co to IDE do mnie mówi. Znaczy tu widać że jest błąd linkowania, ale doprawdy dojście jaka jest tego przyczyna, ehh… Spod terminala czy Eclipse + natywne gcc nigdy mi się coś takiego nie zdarzyło, nawet teraz napisałem program, który zablokowałem na prostym scanfie i dało radę usunąć binarkę, więc nie wiem co to IDE/kompilator (czy może system?) robi…

Dziękuję za pomoc. Exek rzeczywiście tam siedział :slight_smile: A co do linuxa, to rzeczywiście sobie go zainstaluje.

Nie ma domyślnie GCC, ale można łatwo doinstalować. Wystarczy

sudo apt-get install build-essentials

A co do programowania, to pod Windowsem zawsze coś źle linkowało, a na Fedorze wszysto śmiga :smiley: