MingW GCC

Tags:    c++

<< < 12 > >>
Hej allesammen!

Jeg har efterhånden programmeret C/C++ i et stykke tid.
Har brugt Dev-C++ med MingW (GCC), forholdvis IDE og kompiler. Mit "problem" nu er bare at Dev-C++ gør alt for en, altså alt kompiler-arbejdet, eller gør den jo ikke men den sætter GCC til det hele. Alt har virket som det skulle, men jeg vil nu selv prøve. Vil selv prøve hvordan det er at bruge GCC gennem kommandoprompten, så har downloadet MingW GCC 3.4.2 direkte fra MingW's hjemmeside. Jeg har udpakket, lagt det i mappen "C:\\Programmer\\Programmering\\MingW\\GCC", ændret systemvariabler, og er nu klar til at prøve.

Prøvede så at kompilere, først med et C-program og derefter et C++-program, vi tager først C...
Fold kodeboks ind/udKode 

Jeg kompilere det - og får fejl...
Fold kodeboks ind/udKode 

Nøjagtig det samme er der med C++...
Fold kodeboks ind/udKode 

Når jeg kompilerer, får jeg som sagt fejl - dog en hel del flere så viser kun lige slutningen af fejlene...
Fold kodeboks ind/udKode 


Er rimelig sikker på at jeg gør noget forkert, ud fra fejlene ser det ud til at jeg mangler en masse filer, biblioteker, eller ihvertfald definitioner. Hvad mangler jeg - hvis jeg altså mangler noget?

Har givet så megen info jeg kan, så håber I kan hjælpe.



Det ser ud som om der er nogle pakker der mangler at instalere.

Du skal installere alle pakker ud for "current" på:
http://mingw.org/download.shtml



Alt har virket som det skulle, men jeg vil nu selv prøve. Vil selv prøve hvordan det er at bruge GCC gennem kommandoprompten


Fantastisk ide !! Thumbs up.
Det er sjældent at se nogen sætte sig ind i sådanne detaljer, som et IDE nok kunne gøre for én. Ved selv at styre compileren og dens flag, kan man udføre rigtig mange trics, som IDE'et sjældent kender til. Rigtig meget held og lykke med det.

Lige et tip: Brug make filer :-)



Bertel:
Jeg har allerede installeret et par pakker.
Jeg valgte dem som jeg mente at jeg måske ville få brug for, alle er taget fra current.
Fold kodeboks ind/udKode 

Mangler jeg nogle, og hvordan skal de "sættes" sammen så det hele arbejder sammen. Ved så vidt at GDB er en debugger og MAKE er til make-filer, så disse skal muligvis ikke arbejde sammen med det andet, men separat, eller skal de?

Robert:
Lyder godt at min idé ikke var hel dum. :-)
Ang. make-filer, så har jeg tænkt på det, men aner ærlig talt ikke meget om dem. Er det ikke en fil som man nærmest "koder" for at få det til at kompilere noget andet? Først og fremmest vil jeg ihvertfald få det til at virke, og senere begynde at arbejde med GDB og MAKE.



Indlæg senest redigeret d. 25.10.2006 06:57 af Bruger #8422
Make er et program som konfigureres af en makefil.
I make filen står der hvilke kode filer, som skal compiles og hvilke compiler options, de skal compiles med og hvilke afhængigheder de har.
Dvs. at når du har ændret i én kode fil og kører 'make' programmet, så finder make ud af at den ene fil er ændret. Så bliver kun den compilet og din exe fil bliver lænket igen.
Livet bliver noget nemmere med make, når man har mere end én source fil.

Men som alt andet, så er makefile syntax noget man skal lære sig.



Tusind tak for svaret, Robert!

Jeg mangler stadig at finde ud af hvordan det hele skal "linkes" sammen for at virke. Nogle der kan hjælpe?



Måske kan du bruge dette ?

Why do I get error messages when building a simple program using MinGW?

stdio.h: no such file or directory (or another standard header)

This may be occur if you install GCC but not the w32api and mingw-runtime packages.

The MinGW installer (e.g. MinGW-3.1.0-1.exe) includes all the basic packages you need: GCC, binutils, w32api, mingw-runtime and mingw32-make.




Indlæg senest redigeret d. 25.10.2006 19:22 af Bruger #9859
runtime pakken indeholder stdio.h så den bør kompileren kunne finde. runtime indeholder ikke iostream, for at bruge den skal du downloade gcc-g++-3.4.2-20040916-1.tar.gz (som er current pt.).

Filerne skal ligge i den samme "rod" f.eks:
C:\\Programmer\\Programmering\\MingW\\bin
til alle .exe, f.eks. gcc og g++
C:\\Programmer\\Programmering\\MingW\\include
til alle .h filerne. iostream osv. skal ligge i undermapper til denne mappe på samme måde som i .zip filen.
C:\\Programmer\\Programmering\\MingW\\lib
til diverse .a filer.

Dvs alle .zip filer skal unzippes til samme mappe.



Jørgen:
Desværre ikke rigtigt.
Har allerede pakkerne, men tak for dit forsøg!

Bertel:
Jeg har gjort som du sagde og har nu fire mapper.
"lib", "include", "bin" og "libexec". Vidste ikke rigtigt hvor jeg skulle gøre af libexec? Jeg har rykket alle filerne fra de forskellige pakker over i henholdsvis "lib", "include", "bin" og "libexec". Men, det virker stadig ikke. Det ser ud til den stadig ikke kan finde noget. Jeg må vel have gjort noget galt.
Fold kodeboks ind/udKode 

Mapperne:
Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 

Kompilering:
Fold kodeboks ind/udKode 

Fold kodeboks ind/udKode 

Ved ikke om I kan bruge alt det her til noget, men her fik I det da.



Indlæg senest redigeret d. 26.10.2006 07:20 af Bruger #8422
Det går da fremad, nu kan den finde stdio.h :-)

stddef var en del af mingw runtime (i f.eks. 3.8) men den findes ikke i den nye 3.9
Det tyder på at du har downloaded og instaleret forskellige versioner af filerne.

Du bør downloade dem der står ud for Current:
http://mingw.org/download.shtml

For en sikkerhedsskyld så start med at fjerne det du har instaleret.



Jeg har alle dem fra current,
samlignede lige versionsnumrene, og de passer.
Fold kodeboks ind/udKode 

Mener du at jeg skal slette dem alle og derefter downloade på ny?

Undskyld, hvis jeg er lidt hjælpeløs :-(



Indlæg senest redigeret d. 27.10.2006 07:04 af Bruger #8422
<< < 12 > >>
t