[Solved] Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

[Solved] Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: Heron »

Witam, zaczynam naukę programowania i czytam właśnie książkę 'Język ANSI C'. Mam zainstalowane wszystkie kompilatory pod Ubuntu 10.10, środowisko Eclipse, wtyczkę CDT. Odpalam IDE, wybieram z menu File->New->C Project; nazywam na przykład Project name: Test poniżej mam tabelkę dwukolumnową Project type oraz Toolchains. W tej pierwszej domyślnie jest wybrana opcja z folderu Executable->Empty Project (ta opcja domyślnie ustawia jakby cały projekt pod język C++ ? - nic tu chyba nie rozumiem) następna opcja z tego folderu to Hello World ANSI C Project - tutaj w sumie wszystko działa ale już jest wypełniony jakimś kodem, którego nie chcę i zupełnie inaczej zaprogramowane niż moje przykłady czyli i tak muszę wszystko kasować. Są jeszcze foldery Shared Library, Static Library oraz Makerfile project. W kolumnie obok jest tylko jedna pozycja Linux GCC. Przykładowo wybierając pierwszą opcję brzmiącą jako pusty projekt przechodzę dalej-> Next. Tam pojawia się jakieś podsumowanie, zaznaczone są opcję Debug i Release następnie naciskam Finish. W pliku Test mam tylko jakiś zbiór bibliotek chyba o nazwie Includes. Dodaje nowy plik, nazywam go np. MyFile.c następnie wpisuję tam przykładowo:

Kod: Zaznacz cały

#include <stdio.h>

main()
{
	printf("Hello World\n");
}
Zapisuje, kompiluję (Run), uruchamiam i wyskakuje mi jakiś błąd o nazwie Launch failed. Binary not found. Czy ktoś mógłbym mi opisać krok po kroku jak ja powyżej jak poprawnie utworzyć projekt w języku ANSI C pod środowiskiem Eclipse (dla systemu Ubuntu 10.10 jeśli to jakieś znaczenie ma). Z góry dziękuje!
[EDIT: ]
Trochę pogrzebałem w Eclipsie i znalazłem przycisk o nazwie "Build 'Debug' for Project '<nazwa_projektu>', który tworzy u mnie domyślnie dwa nowe katalogi w projekcie o nazwie Debug oraz Release. Wtedy aplikacja rusza normalnie. Czy to standardowy proces kompilacji dla języka ANSI C ? Czy ktoś z was mógłby mi wytłumaczyć zasadę działania (po co i co robi) ten przycisk Build ... oraz czym są i co przechowują katalogi Debug oraz Release (czym się różnią po co sa) ? W ogóle jakby ktoś mógłby mi wytłumaczyć zasadę tworzenia projektów w języku C dla IDE Eclipse bo nie za bardzo to rozumiem. Dla Javy czy C# zawsze to był kliknięcie w 'Run' i program ruszał. A tutaj o co chodzi ?
Awatar użytkownika
JSokol
Sędziwy Jeż
Sędziwy Jeż
Posty: 67
Rejestracja: 18 mar 2010, 10:57
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Down under
Kontakt:

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: JSokol »

Heron pisze:

Kod: Zaznacz cały

#include <stdio.h>

main()
{
	printf("Hello World\n");
}
Przepraszam, że nie czytałem całej treści posta, ale w kodzie jest błąd. Powinno być:

Kod: Zaznacz cały

#include <stdio.h>
void main()
{
	printf("Hello World\n");
        return;
}
lub np

Kod: Zaznacz cały

#include <stdio.h>
int main()
{
	printf("Hello World\n");
        return 0;
}
Tak więc musisz określić typ funkcji (void, etc) no i przy okazji warto wyrobić nawyk, że funkcja "coś zwraca" (return).
Graczy platformy Steam zapraszam na http://banid.pl
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: luzakwielki »

@Heron: wygląda na to, że budowanie programu nie powiodło się, przez co nie stworzył pliku wykonywalnego (co pociąga za sobą to, że nie mógł uruchomić czegoś czego nie ma). Błędy w kodzie lub przy linkowaniu zobaczysz w problemach/konsoli (standardowo są pod edytorem tekstorym)
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: Heron »

Jeśli chodzi o kod który zamieściłem jest on poprawny, funkcja co prawda powinna coś zwracać ale nie musi, są to standardy języka C, jeśli napiszemy

Kod: Zaznacz cały

#include <stdio.h>
main()
{
printf("blabla");
}
to program również się uruchomi i wyświetli na konsoli: blabla. Sprawdźcie. Co do nawyku masz rację, funkcja powinna być typu void czyli nic nie zwracać lub może być również tak:

Kod: Zaznacz cały

int main()
{
printf("to też się skompiluje");
return 0;
}
Ja zacytowałem tylko przykład z książki język ANSI C której autorem jest twórca języka C (czyli Dennis Ritchie). Tak tylko jakbyście twierdzili że głupoty wypisuje spojrzeć na stronę 24-25 i sami zobaczycie, że taki przykład został użyty jeśli chodzi o język C jest on poprawny jeśli chodzi o standardy ANSI łamie on pewne zasady dobrego programowania. Problemem nie jest więc składnia jak powtarzam bo trochę programuję, problem jest to, że przy naciśnięciu przycisku 'Run' samoczynnie nie tworzą się foldery Debug lub Release. Dlaczego ? Czy muszę je w środowisku Eclipse tworzyć ręcznie przed kompilacją za pomocą przycisku Build... ? (PS. Napisałbym dużymi literami ale pewnie na forum nie można :), tak więc: w kodzie nie ma żadnych błędów, kod się kompiluje i jest poprawny!)
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: norvoles »

Czy ktoś z was mógłby mi wytłumaczyć zasadę działania (po co i co robi) ten przycisk Build
Język C jest językiem kompilowanym i jak się być może domyślasz już, przycisk Build kompiluje projekt.
oraz czym są i co przechowują katalogi Debug oraz Release (czym się różnią po co sa) ?
Zawierają skompilowany program/elementy programu. Debug zawiera program skompilowany na potrzeby debugowania, a Release na potrzeby np. używania, publikacji itp.
W ogóle jakby ktoś mógłby mi wytłumaczyć zasadę tworzenia projektów w języku C dla IDE Eclipse bo nie za bardzo to rozumiem.
Rusz mózgownicą, bo z C nie wyjdziesz poza przepisywanie kodu kalkulatorków.
Czy muszę je w środowisku Eclipse tworzyć ręcznie przed kompilacją za pomocą przycisku Build... ?
omg.. build kompiluje, run uruchamia. W Eclipse opcja run nie kompiluje.
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: mikolajs »

W ogóle jakby ktoś mógłby mi wytłumaczyć zasadę tworzenia projektów w języku C dla IDE Eclipse bo nie za bardzo to rozumiem.
Po co Ci Eclipse do nauki podstaw programowania. Spróbuj zwykły edytor i kompilację w konsoli. W tej chwili zamiast skupiać się na nauce programowania walczysz z IDE. Jak będziesz wiedział już o co chodzi w programowaniu i kompilowaniu to spokojnie zaczniesz używać jakiegoś IDE.
(Ewentualnie spróbuj Geany lub Anjuta)
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: Hauleth »

Błąd. Main musi ZAWSZE zwracać int. Tak mówi standard, ale przepuszcza on też definicję bez określonego typu zwracanego i wtedy domyślnie jest to int, ale nie jest to zalecana praktyka i kompilator zwróci warna.
Jeśli problem rozwiązany dodaj na początku tematu [SOLVED].

Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: luzakwielki »

@Heron: powtórzę, pokaż co wypisuje Ci w zakładkach Problems/Console
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: Heron »

Zakładka Problems jest czysta i nic nie pokazuje ponieważ kod nie zawiera błędów, natomiast zakładka Console przedstawia coś takiego:

Kod: Zaznacz cały

**** Build of configuration Debug for project Test ****

Nothing to build for project Test
Teraz już wiem, że na początku trzeba ręcznie zdebugować kod program a dopiero potem można go uruchomić (co w Borland i VS operacje są zautomatyzowane jako jedna). Należy kliknąć na przycisk z ikonką młoteczka o nazwie "Build 'Debug' for project <nazwa_projektu>" i wybrać Debug lub Release a dopiero potem na "Run". Wszystko działa jak dla mnie problem rozwiązany, dzięki.
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Tworzenie projektu w języku ANSI C w Eclipse - Launch failed. Binary not found

Post autor: luzakwielki »

Heron pisze: Teraz już wiem, że na początku trzeba ręcznie zdebugować kod program a dopiero potem można go uruchomić (co w Borland i VS operacje są zautomatyzowane jako jedna). Należy kliknąć na przycisk z ikonką młoteczka o nazwie "Build 'Debug' for project <nazwa_projektu>" i wybrać Debug lub Release a dopiero potem na "Run". Wszystko działa jak dla mnie problem rozwiązany, dzięki.
Nie trzeba - powinien automatycznie budować (chyba, że pomieszałeś w opcjach np ustawiłeś Run/Debug->Launching->Save...->Never ale raczej nie w tym przypadku). Pewnie po prostu nie miał czego uruchomić/nie wiedział co uruchomić (klikasz na strzałce obok play i masz dostępne rzeczy które możesz uruchomić - jeśli nie ma tam nic dajesz Run as->Local C/C++ Aplication i zbuduje i uruchomi aktywny projekt (ten którego jest otwarty jakiś plik źródłowy i jego zakładka jest aktywna)).
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not fou

Post autor: Heron »

No nie wiem, robię tak jak mówisz a wyskakuje wiadomość i w konsoli pojawia się:

Kod: Zaznacz cały

**** Build of configuration Debug for project Test ****

Nothing to build for project Test
W tym samym momencie wyskakuje komunikat w nowym oknie o nazwie 'Application Launcher' z informacją:

Kod: Zaznacz cały

Launch failed. Binary not found.
Zakładka Problems jest pusta a w kodzie programu nie ma żadnego błędu ponieważ nic nie jest podświetlone. Temat uważałem za rozwiązany bo ktoś napisał wyżej, że ręcznie trzeba stworzyć katalog Debug lub Realease do uruchomienia kodu. W takim razie dalej uważam wątek za otwarty i nie rozwiązany. Czekam na Wasze propozycje, czy to normalne że ręcznie trzeba tworzyć katalog Debug lub Release przed uruchomieniem programu za pomocą ikony 'młoteczka' a dopiero potem 'Run' ? Teraz znów nic nie rozumiem ? Nic przecież nie ustawiałem w Eclipse ani nie zmieniałem.
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: norvoles »

Czekam na Wasze propozycje, czy to normalne że ręcznie trzeba tworzyć katalog Debug lub Release przed uruchomieniem programu za pomocą ikony 'młoteczka' a dopiero potem 'Run' ? Teraz znów nic nie rozumiem ? Nic przecież nie ustawiałem w Eclipse ani nie zmieniałem.
Nie trzeba ich tworzyć ręcznie, ponieważ Eclipse tworzy je podczas kompilacji.
Ogólnie skompilowanie i uruchomienie programu w Eclise wygląda tak:
1. Napisanie kodu
2. Zapisanie go (ctrl+s)
3. Skompilowanie - Project/Build All (albo Project/Build Project)
4. Uruchomienie - Run/Run (Ctrl + F11)

Opcja Project/Build Configuration/Set Active pozwala ustawić sposób budowania programu: Debug - na potrzeby debugowania, Release - do publikacji.
piachulus
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 13 sty 2011, 21:25
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: piachulus »

Witam,

Musisz doinstalować:

sudo apt-get install build-essential

i wszystko będzie ok!

Pozdrawiam
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: Heron »

No problem tylko w tym, że ja mam zainstalowany bulid-essentials przez Synaptica i nic nie jest ok :|. Tak więc dalej wznawiam pytanie dlaczego muszę robić to ręcznie poprzez przycisk 'Build..' ? Co doinstalować ? build-essential jak pisałem już jest, tak samo jest już zainstalowany maker, gcc, i wszystko co potrzebne do pisania w języku C/C++ bo zakładałem osobny wątek na tym forum co będzie mi potrzebne i tak wszystko zainstalowałem. Programy się kompilują, uruchamiają i niby wszystko działa ale ręcznie muszę tworzyć katalog Debug oraz Release (jeden albo drugi) aby móc uruchomić aplikację i zobaczyć jej rezultaty w konsoli. A chyba te katalogi powinny się tworzyć automatycznie podczas uruchamiania programu czyli w trakcie kompilacji. Proszę o pomoc!
norvoles
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1113
Rejestracja: 04 sty 2008, 20:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: norvoles »

Przypuszczam, ze to Ty coś pochrzaniłeś przy tworzeniu projektu. Usuń stary i zrób nowy.
1. File/New/C Project
2. Zaznacz Executable/Empty Project, wpisz nazwę projektu i Next
3. Opcje Debug i Release powinny być zaznaczone, klikasz na Finish
4. Dodajesz plik .c - File/New/Source File. Tam wybierasz projekt, wpisujesz nazwę pliku (np. main.c), szablon zostaw domyślny, klikasz na Finish
5. Piszesz kod np:

Kod: Zaznacz cały

#include <stdio.h>
int main()
{
	printf("Hello World\n");
        return 0;
}
6. Zapisujesz - ctrl+s
7. Kompilujesz - Project/Build Project
8. Uruchamiasz - Project/Run
9. Działa, w terminalu niżej masz "Hello World"

Stosowny katalog Debug się utworzy sam. Jak ustawisz w Project/Build Configuraton/Set Active na Release, to katalog utworzy się też Release, przy kompilacji.
Awatar użytkownika
Heron
Wytworny Kaczor
Wytworny Kaczor
Posty: 258
Rejestracja: 10 cze 2010, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not found

Post autor: Heron »

Dobra, widać nie zrozumieliśmy się, pewnie moja wina. Chodziło mi o to, że pracując w środowisku np. Visual Studio nie musiałem kompilować projektu ponieważ kompilacja następowało w trakcie uruchomienia programu, obydwie rzeczy zostały tam wykonane w tym samym czasie. Zrozumiałem, że tu też jest podobnie, ale jednak najpierw trzeba wcisnąć 'kompiluj' a potem 'uruchom' a VS2010 było tylko 'uruchom' które od razu kompilowało. Myślałem że twierdzicie, że i tu ma być tak samo. Jeśli kompilację wykonujemy wciskając Build a potem Run w celu uruchomienia to jest wszystko ok. Nieporozumienie z mojej strony.
Kokosek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 108
Rejestracja: 04 mar 2009, 20:44
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [Solved] Tworzenie projektu w języku C w Eclipse - Launch failed. Binary not fou

Post autor: Kokosek »

U mnie domyślnie Ctrl + F11 zapisuje, buduje i uruchamia program
Kokos - po prostu, nie zdrabniaj ;)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości