Forum: PC-Programmierung Probleme beim Kompilieren von wxWidgets


von Daniel S. (schindla)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
nachdem ich meinen PC platt gemacht hab (Windows 7 neu draufgespielt), 
will ich jetzt wieder die Kombination MinGW gcc, Codeblocks und 
wxWidgets verwenden (gefällt mir soweit gut, hab ich Erfahrung mit, 
Codeblocks 12.11 ohne MinGW ist installiert)

Jetzt hab ich folgendes Problem:
Beim Kompilieren von wxWidgets-2.8.12 (download: wxWidgets-2.8.12.tar.gz 
von http://sourceforge.net/projects/wxwindows/files/2.8.12/)(guide: 
http://wiki.wxwidgets.org/CodeBlocks_Setup_Guide ohne USE_XRC und 
MONOLITHIC und mit UNICODE=1) kommt ganz am Schluss die Meldung, die man 
im angehängten Screenshot sieht.
Und wenn ich dann ein wxWidgets-Projekt in Codeblocks kompilieren will 
dann kommt der error:

ld.exe cannot find -lwxmsw28u_core



MinGW hab ich mit dem MinGW Installer von der Homepage mit den Packages 
mingw-developer-toolkit, mingw32-base, mingw32-gcc-g++ und msys-base 
installiert. (nachdem der Installer fertig war habe ich selbst nichts 
mehr selbst kompiliert von MinGW ist das richtig?? wusste nicht ob ich 
bei diesem guide http://www.mingw.org/wiki/Getting_Started nach der GUI 
das mit dem command line interface auch noch machen muss??)
PATH-Variable ist auf Pfad von mingw->bin gesetzt.

Hab schon bisschen was zu dem Thema gefunden, das hat mich allerdings 
nicht weitergebracht. Jetzt sind meine Fragen:
Was läuft da falsch?
Ist der MinGW-Compiler schon falsch installiert?
Hat das was mit Pfaden mit \ oder / schreiben zu tun? (hab ich auch 
schon gelesen)

Vielen Dank schon einmal für eure Hilfe.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel Schindler schrieb:
> kommt ganz am Schluss die Meldung, die man
> im angehängten Screenshot sieht.

Die ist ganz sicher eine Folge der Fehler davor.

> ld.exe cannot find -lwxmsw28u_core

Kein Wunder, wenn das Erzeugen der Library nicht funktioniert, gibt es 
sie ja auch nicht.

Übrigens kann man den Text in einem Konsolenfenster in die 
Zwischenablage kopieren, so daß kein Screenshot nötig ist.

Was Du jetzt tun solltest: Suche die erste Fehlermeldung und beseitige 
deren Ursache, denn oft sind weitere Fehlermeldungen Folgen von 
vorangegehenden Fehlern.

von Daniel S. (schindla)


Lesenswert?

was mich eben wundert ist, dass ich alles nach der anleitung gemacht 
habe, bzw schon mehrere verschiedene anleitungen durchgegangen bin(mingw 
mit installer installiert oder per konsole etc, das selbe bei 
wxwidgets), komme aber trotzdem immer auf das selbe ergebnis

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tja, irgendwas ist dann halt doch etwas anders. Und das verbirgt sich 
ziemlich sicher hinter der ersten Fehlermeldung, der, die man in 
Deinem Screenshot nicht sehen kann.

von Daniel S. (schindla)


Lesenswert?

Kann es denn sein, dass MinGW auch schon falsch installiert/kompiliert 
ist?
Habs wie gesagt nur mit dem Installer gemacht.

von Daniel S. (schindla)


Lesenswert?

Habe das ganze gerade mit wxWidgets 3.0.0 versucht und dabei kamen keine 
Fehler, aber wie ich das sehe unterstützt Codeblocks die 3er Version 
nicht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Lust, Dir die erste Fehlermeldung anzusehen, hast Du anscheinend 
nicht.

von Daniel S. (schindla)


Lesenswert?

Wie komme ich denn an die ran? Ich kann in der Konsole ja nur eine 
gewisse Distanz hochscrollen.

Der erste Error im scrollbaren Fenster ist
1
../../src/msw/debughlp.cpp: In static member function 'static wxString wxDbgHelp
2
DLL::DumpField(PSYMBOL_INFO, void*, unsigned int)':
3
../../src/msw/debughlp.cpp:335:49: error: cast from 'void*' to 'long unsigned in
4
t' loses precision [-fpermissive]
5
                 pVariable = (void *)((DWORD_PTR)pVariable + ofs);

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel Schindler schrieb:
> Wie komme ich denn an die ran? Ich kann in der Konsole ja nur eine
> gewisse Distanz hochscrollen.

Dann stell die Größe des Konsolenpuffers ausreichend groß ein.

Klick aufs Systemmenü (links oben neben "MINGW") und "Eigenschaften" 
auswählen. "Layout" wählen und als Fensterpuffergröße z.b. 5000 Zeilen 
eintragen.

von Daniel S. (schindla)


Lesenswert?

Alles klar viele Dank für die Info.

Jetzt ist die erste Fehlermeldung (trotzdem ziemlich weit unten 
insgesamt)
1
../../src/msw/thread.cpp: In static member function 'static THREAD_RETVAL wxThre
2
adInternal::DoThreadStart(wxThread*)':
3
../../src/msw/thread.cpp:525:43: error: cast from 'void*' to 'THREAD_RETVAL {aka
4
 unsigned int}' loses precision [-fpermissive]
5
         rc = (THREAD_RETVAL)thread->Entry();

von Daniel S. (schindla)


Lesenswert?

Und das ist wirklich die erste Fehlermeldung beim Kompilieren. Ich habe 
jetzt mit TDM-GCC-64 muss ich sagen, da ich da auch verschiedene 
Varianten schon ausprobiert habe.
Dann kommt ganz am Schluss auch nicht mehr das mit treectrl sondern
1
makefile.gcc:8776: recipe for target 'gcc_mswudll\basedll_thread.o' failed
2
mingw32-make: *** [gcc_mswudll\basedll_thread.o] Error 1

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel Schindler schrieb:
> ../../src/msw/thread.cpp:525:43: error: cast from 'void*' to
> 'THREAD_RETVAL {aka
>  unsigned int}' loses precision [-fpermissive]
>          rc = (THREAD_RETVAL)thread->Entry();

Andererseits: Versuchst Du das als 64-Bit-Code zu übersetzen? Das würde 
die Fehlermeldung erklären, denn nur dann ist sizeof (int) < sizeof 
(void *).

Lass' das mit den 64 Bit mal sein.

von Daniel S. (schindla)


Lesenswert?

So ich habs jetz wieder wie ganze am Anfang gemacht, MinGW über 
Installer etc.
Die erste Fehlermeldung ist dann wie oben im Screenshot zu sehen
1
In file included from ..\..\include/wx/msw/gccpriv.h:22:0,
2
                 from ..\..\include/wx/platform.h:577,
3
                 from ..\..\include/wx/defs.h:21,
4
                 from ..\..\include/wx/wxprec.h:13,
5
                 from ../../src/msw/treectrl.cpp:21:
6
../../src/msw/treectrl.cpp: In member function 'virtual bool wxTreeCtrl::MSWOnNotify(int, WXLPARAM, WXLPARAM*)':
7
../../src/msw/treectrl.cpp:2581:17: error: 'NMTVDISPINFOWW' was not declared in this scope
8
                 TV_DISPINFO *info = (TV_DISPINFO *)lParam;

Davor kommt kein Fehler. Kann damit wer was anfangen?

von Daniel S. (schindla)


Lesenswert?

So hab die Lösung gefunden: siehe
http://mingw.5.n7.nabble.com/win32api-version-4-td32288.html

Wusste halt nicht, ob MinGW möglicherweise schon falsch installiert 
wurde.
Danke trotzdem.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.