Hello!
Eclipse-t szeretném win alatt használni c / c++ fejlesztésre, és ehhez felraktam a cygwin-t. A cygwin-t a base utilites-zel és a következő csomagokkal telepítettem : autoconf, automake, binutils, gcc, gdb, make, and libtool. A legtöbb parancs működik is rendesen cygwin alatt de ha a legegyszerűbb programot le szeretnem fordítani gcc -vel nem csinal semmit.. :)
A program: :-)
#include stdio.h // Eredetiben van kacsacsőr
int main(void)
{
printf("Hello World");
return 0;
}
Ezt szeretném lefordítani gcc, így probáltam:
gcc -o hello hello.c -Wall
Erre semmi hiba üzenetet nem ad, csak egy üres sort. A cél file persze nem jön létre..
Nem igazán értem miert csinalja ezt, egyelőre csak ezt "programot" probáltam lefordítani.
Amugy a gcc -v parancsra kiírja a gcc verzióját, szóval ilyen szempontból működőképesnek tűnik.
Windows XP-n probáltam, amin az összes frissítés fent van, cygwinből is a legfrissebb van fent, amit a honlapjukról le lehetett tölteni, a gcc verziója pedig 3.4.4
- 2653 megtekintés
Hozzászólások
Gondolom felraktad a CDT-t is. (C/C++ Development Tools)
Ha nem, akkor tedd meg. :)
Itt egy útmutató:
http://max.berger.name/howto/cdt/
Nekem MinGW-vel ment, gond nélkül, Cygwinnel sem lehet gond.
Egyéb infók:
http://wiki.eclipse.org/index.php/CDT/User/FAQ
Parancssorból próbáltad a gcc-t közvetlenül?
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Felraktam a CDT-t, de az se megy, mondjuk ezt nem csodálom mert parancssorból se tudok fordítani gcc-vel cygwin alatt. De bloodshed dev-c++ is gcc-t használ és az megy rendesen, csak cygwin-el nem az igazi :/
Amugy az itt található howto egyike alapján probáltam felrakni.
http://wiki.eclipse.org/index.php/CDT/User/FAQ#Download_and_Installation
- A hozzászóláshoz be kell jelentkezni
Akkor ott nem az eclipse-szel lesz gond.
-o nélkül nem jön létre egy a.exe?
gcc hello.c
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ugyan az. Semmit nem csinál. Nem lehet hogy nem abban a könyvtárban jön létre a futattható file mint amiben fordítók? Bár linux alatt működni szokott ez :) Lehet felrakom inkább a MinGW-t és azzal probálkozom.
- A hozzászóláshoz be kell jelentkezni
Mivel nincs hibaüzenet, ő úgy veszi, hogy létrejön valahol.
De szerintem ott helyben kéne létrejöjjön. mondjuk cygwin-t még nem használtam, lehet, hogy van vmi környezeti változó? Nem hiszem, de ki tudja...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Én annyit mondhatok amit most kipróbáltam.
készítettem egy hello.c fájlt, és beletettem amit te írtál.
gcc hello.c
eredmény = a.out
./a.out = Hello World!
Ott hozta létre ahol a hello.c is van. Egyébként miért a.out lett a neve? Ezt megadhatnám én is?
- A hozzászóláshoz be kell jelentkezni
a.out mert linuxon vagy.
a.exe windowson.
Ez a default fájlnév, sajátot megadni -o kapcsolóval lehet.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Meg akartam kérdezni, hogy akkor ha -o hello.exe-t készítek akkor az működik win-en is? De inkább kipróbáltam és nem működöt.
Az NTVDM CPU meg nem engedett utasítást talált.
A hello.exe a Hello World! kiírása lett volna.
- A hozzászóláshoz be kell jelentkezni
Nem. Nálam egyébként szépen műx a gcc-s fordítás WindowsXP alatt. A strace mit mond? (Igen, cygwin alatt...)
- A hozzászóláshoz be kell jelentkezni
Nem tudom mi az a strace meg a cydwin.
mceditor-al készítettem a forrást.
- A hozzászóláshoz be kell jelentkezni
Nem működött, mert linuxos binárist fordít csak hello.exe néven.
Megoldható egyébként, hogy win-es binárist fordítson linux alatt, mindenféle trükkös gcc kapcsolókkal, amit fejből nem tudok.
De szerintem jobban jársz, ha win alatt fordítasz winre, és linux alatt linuxra. Már csak a tesztelés miatt is.
win alatt gcc:
cygwin
mingw
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Köszi, de akkor nem strapálom magam, egyenlőre egy dolgot csinálok, Win-re meg úgyse érdekel, csak érdekesség képp lett volna jó ha működik :)
- A hozzászóláshoz be kell jelentkezni
Előzőt SUSE 9.2-őn teszteltem.
9.3-ason ár érdekesebb:
budacsik@server2:~/c_programozas/c> gcc hello.c
hello.c:1:10: #include expects "FILENAME" or
budacsik@server2:~/c_programozas/c> gcc -o hello -Wall hello.c
hello.c:1:10: #include expects "FILENAME" or
hello.c: In function `main':
hello.c:6: warning: implicit declaration of function `printf'
A hello.c tartala:
#include (stdio.h)
int main(void)
{
printf ("Hello World!\n");
return 0;
}
- A hozzászóláshoz be kell jelentkezni
Az #include mögött ugye nincs szóköz?
- A hozzászóláshoz be kell jelentkezni
nincs
- A hozzászóláshoz be kell jelentkezni
És ugye nem zárójelek, hanem kisebb-nagyobb jelek között van az include-olt fájl neve...?
( RTM: Kernighan - Ritchie: A C programozási nyelv )
- A hozzászóláshoz be kell jelentkezni
Thx, elnéztem.
- A hozzászóláshoz be kell jelentkezni
Nem tom, nekem elsőre ment. Esetleg próbáld meg ezt:
gcc
-mno-cygwin
-o hello.exe hello.c -Wall
Nálam nincs különbség a kettő között (eredményben), de hátha segít.
- A hozzászóláshoz be kell jelentkezni