Strona 1 z 1
Mam cpp a chce mieć exe -jak to zrobić?
: 12 paź 2009, 18:55
autor: Nacrob
Mam taki problem że nie mam pojęcia jak sformułować polecenie w konsoli dla gcc. Mam kod źródłowy np. w /home/bartek/Pulpit/C++/dzielenie plik nazywa się dzielenie.cpp a po kompilacji chcę uzyskać dzielenie.exe, naczytałem się wielu artykułów i nigdzie niema tak podstawowej sprawy jak formułowanie tego polecenia. Proszę o pomoc.
Ps. thalcave z łaski swojej nie usuwaj tematów i jeżeli już odpowiadasz na pytanie to nie jakimś linkiem po którego lekturze nic w tej sprawie się nie zdziała.

Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 12 paź 2009, 19:11
autor: pawegio
exe nie uzyskasz na linuxie bo to aplikacje windowsowe....
w konsoli wpisz:
g++ /ścieżka/plik.cpp (kompilacja)
a potem /home/<twoja nazwa>/a.out (otwierasz program)
To najprostszy proces... możesz nadawać też nazwy plikom wyjściowym przy kompilacji itd. itp. ale jeśli chcesz sprawdzić jeden program to to wystarczy...
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 12 paź 2009, 19:44
autor: Nacrob
Dzięki, faktycznie powstaje to a.out, ale po odpaleniu zupełnie nic się nie dzieje(kod źródłowy jest prawidłowy ponieważ to ten sam który zrobiłem na lekcji i po skompilowaniu przez Dev-C++ do exe działał).
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 12 paź 2009, 19:49
autor: skoczo
W katalogu z plikiem a.out w konsoli wpisz
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 12 paź 2009, 19:49
autor: Dwimenor
A co robi ten kod? Czy jest on przenośny? Co wypluwa do terminala?
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 13 paź 2009, 21:17
autor: Nacrob
Zwykły kodzik, ale już po sprawie (zainstalowałem Dev-C++ na wine), dziękuje za pomoc i pozdrawiam.
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 14 paź 2009, 01:47
autor: Razi
Ja też se Deva zainstalowałem, ale i tak wolę korzystać z konsoli: ustawiłem se na wine zmienne globalne i w konsoli wstukuję wine cmd, potem przechodzę do tego folderu i mingw32-make/g++ itd.
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 14 paź 2009, 02:03
autor: luzakwielki
Razi pisze:Ja też se Deva zainstalowałem, ale i tak wolę korzystać z konsoli: ustawiłem se na wine zmienne globalne i w konsoli wstukuję wine cmd, potem przechodzę do tego folderu i mingw32-make/g++ itd.
To co zrobił Nacrob jest dla mnie niezrozumiałe, ale Ty przebiłeś wszystko ;p. Nie lepiej zainstalować sobie natywną wersję mingw32 (powinna być w repo ubuntu) i używać natywnej wersji pod konsolą (lub skonfigurować sobie eclipse/c::b/netbeans do współpracy z crosskompilatorem)?
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 14 paź 2009, 22:59
autor: Atom
Ja mam pytanie dlaczego wywarzacie otwarte drzwi kombinujecie że głowa boli.
Nie lepiej zainstalować netbeans i do tego gcc i programować jak w devie ?? i przy okazji mieć profesjonalne środowisko programistyczne a nie bawić się w jakieś wine i inne udziwnienia.
Bo założę się że w devie pod windą także używać gcc pewnie z paczki minGW
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 14 paź 2009, 23:05
autor: luzakwielki
Atom pisze:Ja mam pytanie dlaczego wywarzacie otwarte drzwi kombinujecie że głowa boli.
Nie lepiej zainstalować netbeans i do tego gcc i programować jak w devie ?? i przy okazji mieć profesjonalne środowisko programistyczne a nie bawić się w jakieś wine i inne udziwnienia.
Bo założę się że w devie pod windą także używać gcc pewnie z paczki minGW
Tylko, że on chce pod linuksem robić EXE (czyli windowsowy PE32, a nie linuksowy ELF/A.OUT), więc netbeans + gcc odpada - netbeans/eclipse + natywny crosskompilator mingw32 to już inna sprawa i jak najbardziej jest to lepsze rozwiązanie niż dev c++, na wine (ze starą i słabą wersją mingw (3.4)).
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 15 paź 2009, 14:08
autor: beluosus
Moim zdaniem kompilowanie programu pod platformę, której nie możemy przetestować jest bezsensowne. Chyba, że nie rozumiem co autor tematu miał na myśli. Co jak co ale opis mało wnoszący. Nie żebym się czepiał ale utworzyć plik 'dzielenie.exe' można poleceniem 'touch' więc...

Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 17 paź 2009, 23:09
autor: kamil4521
Nie był bym taki pewien, jeśli autor tematu nie umie kompilować programów z wiersza poleceń, to trudno mi pojąć, po co miał by robić cross-compile dla windowsa, można to porównać do pilotowania samolotu, bez instruktarzu. Te wszystkie DevC++ i inne IDE uruchamiane na wine (w tym konkretnym przypadku), to śmieszność. Ludzie, jeśli nie potraficie kompilować pod linuksem, to nie korzystajcie z tego systemu. Zainstalujcie sobie Visual Studio na windowsie i po kłopocie.
Swoją drogą najprościej było by, gdyby autor powiedział jasno co chce, bo tak na dobrą sprawę, nie wiadomo czego chce. Exe w jego rozumowaniu może być po prostu binarką dla linuksa...
//Edit
Dla autora, działa pod windowsem i linuksem:
krótki how-to kompilacji:
Kod: Zaznacz cały
gcc plik_zrodlowy.c -o plik_wynikowy.exe
g++ plik_zrodlowy.cpp -o plik_wynikowy.exe
Pod linuksem rozszerzenia plików nie grają roli, ale pod windowsem, dzięki rozszerzeniom wiadomo jest jakiego typu jest plik. Te komendy są uniwersalne, dla wersji windowsowej jak i linuksowej kompilatora C/C++ (gcc/g++).
Odp: Mam cpp a chce mieć exe -jak to zrobić?
: 19 paź 2009, 04:53
autor: luzakwielki
kamil4521 pisze:Nie był bym taki pewien, jeśli autor tematu nie umie kompilować programów z wiersza poleceń, to trudno mi pojąć, po co miał by robić cross-compile dla windowsa, można to porównać do pilotowania samolotu, bez instruktarzu. Te wszystkie DevC++ i inne IDE uruchamiane na wine (w tym konkretnym przypadku), to śmieszność. Ludzie, jeśli nie potraficie kompilować pod linuksem, to nie korzystajcie z tego systemu. Zainstalujcie sobie Visual Studio na windowsie i po kłopocie.
Swoją drogą najprościej było by, gdyby autor powiedział jasno co chce, bo tak na dobrą sprawę, nie wiadomo czego chce. Exe w jego rozumowaniu może być po prostu binarką dla linuksa...
//Edit
Dla autora, działa pod windowsem i linuksem:
krótki how-to kompilacji:
Kod: Zaznacz cały
gcc plik_zrodlowy.c -o plik_wynikowy.exe
g++ plik_zrodlowy.cpp -o plik_wynikowy.exe
Pod linuksem rozszerzenia plików nie grają roli, ale pod windowsem, dzięki rozszerzeniom wiadomo jest jakiego typu jest plik. Te komendy są uniwersalne, dla wersji windowsowej jak i linuksowej kompilatora C/C++ (gcc/g++).
Wiem, że ciężko Ci sobie to wyobrazić, ale ktoś może woleć pisać i testować (valgrind) pod linuksem, a sprzedawać program pod windowsa (czyli tam gdzie jest target jego produktu) i crosscompilator jest jak najbardziej użyteczny, bo nie trzeba trzymać windowsa, ani środowisk programistycznych, bibliotek i kompilatorów na nim oraz tracić czas na reboot.
Wiele programów z linuksa na GNU GPL tak jest przenoszona na Windowsa (bez windowsa).
Ten przykład który podałeś jest zupełnie do bani, bo rozszerznie exe na użytkowników linuksa wprowadzi w błąd, że to nie linuksowy program, a użytkownicy windowsa nie uruchomią programu jeśli skompilujesz pod gcc w linuksie, a sam "how-to" jest bardzo słaby (tak skompilujesz tylko program z jednym plikiem źródłowym, i bez bibliotek (oraz optymalizacji i informacji gdzie się znajdują biblioteki i nagłówki)).
Kod: Zaznacz cały
gcc [optymalizacje jak poziom np. -Os/-O0/-O1/-O2/-O3 i dodatkowe jak -funroll-all-loops (http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html)] [-I/sciezka/do/naglowkow] -c zrodlo1.c -o zrodlo1.o
gcc [optymalizacje jak poziom np. -Os/-O0/-O1/-O2/-O3 i dodatkowe jak -funroll-all-loops (http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html)] [-I/sciezka/do/naglowkow] -c zrodlo2.c -o zrodlo2.o
...
gcc zrodlo1.o zrodlo2.o ... [-L/sciezka/do/bibliotek] [-lBIBLITEKA jak np. SDL to -lSDL] -o wykonywalny[.exe]
To takie minimum wiadomości które trzeba posiadać (gcc trzeba zamienić na g++ w wypadku C++).