Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MinGW installer w Eclipse pierwszy program Hello World

kokodyn 01 Kwi 2017 15:54 780 12
  • #1 01 Kwi 2017 15:54
    kokodyn
    Poziom 10  

    Z góry dziękuje za wszelką okazaną pomoc.
    Zainstalowałem IDE Eclipse Cpp Neon ze strony producenta. Zainstalowałem MinGW installer, teraz nie wiem co dokładnie zainstalować z możliwych tam opcji. Czy ktoś mógłby podpowiedzieć co dokładnie mam wybrać z installer MinGW?
    Po próbie Build all mojego projektu wyświetla się nastepujący komunikat:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod mojego programu:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 12
  • Pomocny post
    #3 02 Kwi 2017 11:00
    Sparrowhawk
    Poziom 21  

    Nie trzeba nic dodawać do zmiennej systemowej PATH. Zresztą, wklejony komunikat sugeruje brak funkcji main, więc pewnie plik nie został zapisany przez zbudowaniem.

    Jeśli świeżo zainstalowałeś Eclipse, to przed kompilacją należy zapisać plik. A jeszcze lepiej w opcjach Eclipse ustawić opcję "save before build".

    0
  • #4 02 Kwi 2017 17:38
    kokodyn
    Poziom 10  

    Dziękuje bardzo za odpowiedź, mam jeszcze 2 pytania:
    1. Jaki polecacie poradnik żeby dobrze ogarnąć się w Eclipse, okna, deubgowanie itp?
    Dotychczas używałem Geany, Eclipse ma dużo więcej możliwości daltego czuje się trochę zagubiony.
    2. Rozumiem że skoro program napisany poniżej wykonuje się poprawnie to pliki w ramach jednego projektu są linkowane automatycznie?
    Tylko pliki z rozszerzeniem .h trzeba dołączać poprzez instrukcje #include?
    deklaracje.h znajdują się tam deklaracje stałych i prototypy funkcji

    Kod: c
    Zaloguj się, aby zobaczyć kod


    funkcje.c znajdują się tam deklaracje funkcji
    Kod: c
    Zaloguj się, aby zobaczyć kod

    test2.c znajduje się tam funkcja main.c
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #5 03 Kwi 2017 08:52
    Sparrowhawk
    Poziom 21  

    Ad. 1) Nie wiem, nie korzystałem nigdy z żadnego, ale polecam wydrukować i przyswoić sobie najważniejsze skróty klawiszowe: 103 Eclipse Keyboard Shortcuts

    Ad. 2) Nie bardzo rozumiem o co pytasz. Linkowaniem zajmuje się linker, nie IDE. Eclipse co najwyżej może wygenerować automatycznie plik Makefile. Reguły dołączania plików nagłówkowych też nie są związane z samym IDE, Plik nagłówkowy - Wikipedia

    0
  • #6 04 Kwi 2017 16:11
    kokodyn
    Poziom 10  

    Dziękuje za odpowiedź.

    Mam jeszcze kilka problemów z obsługą Eclipse. Używając funkcji Build all, Run:

    program uruchamia się w konsoli Windowsa cmd, następnie po wykonaniu się programu, okno automatycznie zamyka się. Następne uruchomienie programu funkcją Run, nie otwiera jak porzednio konsoli cmd i nic się nie dzieje.
    Potem przy kolejnym uruchomieniu programu funkcja Run wyświetla się błąd:
    Description Resource Path Location Type
    cannot open output file sprawdzanie.exe: Permission denied sprawdzanie C/C++ Problem

    1. Czy ktoś wie w czym jest problem?
    2. Czy należałoby uzywać konsoli wbudowanej w Eclipse czy po prostu cmd?
    Kod programu:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #7 05 Kwi 2017 09:02
    Sparrowhawk
    Poziom 21  

    1. Domyślnie Eclipse korzysta ze swojej wbudowanej konsoli, zmieniałeś coś w konfiguracji?
    2. Zwykle nie ma różnicy, której konsoli używasz, moim zdaniem ta wbudowana, jest wygodniejsza.

    0
  • #8 05 Kwi 2017 09:09
    kokodyn
    Poziom 10  

    1. Nie zmieniałem nic w konfiguracji odnośnie konsoli, czy należałoby wyłączyć funkcje Avasta, żeby nie analizował mojego programu przed uruchomieniem?
    2. Gdzie można by było zmienić rodzaj wybranej konsoli? Może tam się coś nie zgadza?

    0
  • #9 06 Kwi 2017 08:27
    Sparrowhawk
    Poziom 21  

    1. Nie wiem, nie używam tego programu antywirusowego.
    2. Szczerze nie mam pojęcia. Nigdy nie miałem potrzeby tego zmieniać. U mnie Eclipse działa bez problemów czy to z pakietem MinGW, czy Cygwin i wbudowaną konsolą.

    0
  • #10 06 Kwi 2017 09:20
    krzysztofh
    Poziom 29  

    Zainteresuj się może Eclipse Mars i poczytaj ( lub obejrzyj film) o instalacji i konfiguracji programu.
    Polecam stronę Mirka Kardasia - tam znajdziesz wszystko na ten temat.

    0
  • #11 06 Kwi 2017 09:56
    kokodyn
    Poziom 10  

    Okazało się że nie zamykam poprawnie programów, one po prostu dalej działają w tle. Trzeba przez menadżer zadań zrobić End Process i wtedy jest ok. Jak w takim razie można zamknąć program, który nie wykonał się poprawnie?

    Problem leży głównie w momencie w programach które zawierają funkcje pobierające dane z klawiatury jak np. scanf() czy getchar(). Program nie wyświetla poprzednich linijek kodu np. printf() tylko czeka aż coś się wpiszę dopiero potem wyrzuca coś na konsole.

    Przykładowe kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    jego rezultat:
    23
    to jest już koniec
    23

    0
  • Pomocny post
    #12 06 Kwi 2017 18:13
    Sparrowhawk
    Poziom 21  

    @krzysztofh: Temat nie dotyczy konfiguracji Eclipse do współpracy z kompilatorem AVR, a autor postu nie ma problemu z uruchomieniem samego środowiska.

    @kokodyn: Czy wiesz, że przeważnie wszelkie strumienie we/wy są buforowane? Użyj:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Jeśli uruchomisz program z poziomu Eclipse (CTRL + F11), to w pasku konsoli widnieje przycisk (Czerwony kwadracik "Terminate"). Jeśli jest aktywny, to znaczy, że uruchomiony program wciąż działa. Ponadto po zakończeniu programu pojawia się komunikat o zakończeniu, oraz zwrócony kod wyjścia.

    0
  • #13 06 Kwi 2017 21:47
    kokodyn
    Poziom 10  

    Jak to jest że kompilując programy przez gcc pod Ubuntu, nie potrzebowałem stosować tej funkcji?
    Dlaczego tak właściwie mam jej używać? Czy za każdym razem, kiedy chce coś wczytać a potem wypisać na ekran mam jej używac? Po każdym użyciu getchar(), scanf() itd.?

    Z buforowaniem przy funkcji scanf() spotkałem się tylko w momencie pomijania niepotrzebnych znaków aż do znaku nowej linii:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0