wxWidgets - Linker error
-
evtl. hilft auch wxPack, da hats direkt nen installer für MSVC dabei.
-
Ich habe mir jetzt wxPack heruntergeladen, installiert und in Code::Blocks folgende Einstellungen getroffen:
Settings->Compiler->Linker ca. 250 Bibliotheksdateien hinzugefügt
Settings->Compiler->Directories->Compiler
Adresse C:\SourceCode\Libraries\wxWidgets2.8\include
hinzugefügtSettings->Compiler->Directories->Linker
Adresse C:\SourceCode\Libraries\wxWidgets2.8\lib
hinzugefügtIst das richtig so? Muss ich sonst noch was machen?
-
Eigentlich müsstest du mit Code::Blocks direkt ein wxWidgets-Projekt erstellen können. Es hat ein Template dafür, wo alles schon eingerichtet ist. Du wirst dann vom Wizard um den ort von wxWidgets befragt.
-
Wenn ich ein Project erstelle, erhalte ich folgende Meldung:
This template expects wxWidgets to be located at C:\wxWidgets2.6.2. If this is not the case, you will have to update the relevant custom variable accordingly.
To do this, klick on "Project->Build Options->Custom Variables"
wxWidgets befindet sich aber genau in dem Verzeichnis.
-
Schau dir nochmal die Versionsnummer an.
-
Lies die Message nochmal genau.
-
Entschuldigung, ich sollte noch erwähnen, dass ich in meinem 1.Versuch die Variable angepasst habe, und als dies auch nicht funktioniert hat, habe ich die Datei in wxWidgets-2.6.2 umbenannt und in das entsprechende Verzeichnis verschoben.
Außerdem erhalte ich nun folgende Fehlermeldung:
ld.exe: cannot find -lwxmsw26
-
Dann funktionierts ja.
Die Lib kann er nicht finden, weil sie anders heisst.
Die musst du in das Feld noch einfügen (wxcore etc.)
-
Ich denke du musst im Wizard nur die Variable "wx" definieren. Dort kopierst du einfach den Pfad zu deinem wxWidgets-Ordner rein. Die restlichen Felder brauchst du nicht auszufüllen. Bei mir hat es jedenfalls so funktioniert. Am besten benennst du auch gar nichts in dem wxWidgets-Ordner um, damit schaffst du dir nur Probleme.
Nicht aufgeben
-
Tobias12 schrieb:
Entschuldigung, ich sollte noch erwähnen, dass ich in meinem 1.Versuch die Variable angepasst habe, und als dies auch nicht funktioniert hat, habe ich die Datei in wxWidgets-2.6.2 umbenannt und in das entsprechende Verzeichnis verschoben.
Außerdem erhalte ich nun folgende Fehlermeldung:
ld.exe: cannot find -lwxmsw26Das Template ist schon älter, ändere das einfach in -lwxmsw28, bzw -lwxmsw28u für Unicode Builds. Für die Zukunft kannst du auch einfach das Projekt-Template an sich anpassen.
-
hmmm warum mti wx pack mag ich nich schrenkt ein
aber der fehler auf der seite davor war bestimt weil du die include dateien des platform sdks nich in das include verzeichniss des compilers Visual 2003 .. kopiert hast , den irgendwie tut der installer vom platform sdk dem kostenlosen compiler nix sagen wo es is und das es jetzt nen neues gibt
aber mit manuellen kopieren mein ich mich zu erinnern ging alles gut (ps: auch schon mal beim V S 2007 gemacht um nen update zu erzwingen )
-
Ich habe mir jetzt die neueste Version von Code::Blocks Nightly Builds und die neueste Version des MinGW-Compilers heruntergeladen. Das Compilieren funktionier jetzt wunderbar. (VIEELEN Dank für eure Hilfe, ohne die ich das nicht hingekriegt hätte!!)
Jetzt bleibt nur noch ein (hoffentlich)kleiner Fehler:
Wenn ich nun versuche, das erfolgreich compilierte Programm auszuführen, erhalte ich folgende Meldung:Die Anwendung konnte nicht gestartet werden, weil wxbase28d_gcc.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
Die Datei befindet sich in dem Verzeichnis C:\SourceCode\Libraries\wxWidgets2.8\lib\gcc_dll
Muss ich die Datei dem Compiler noch irgendwie bekannt geben?
Oder hilft wirklich eine Neuinstallation von Code::Blocks?
-
ne, das Programm ist soweit fertig, nur findets die DLL die es braucht nicht.
Entweder du kopierst die DLL in das Verzeichnis der .exe, oder du linkst gegen statische wxLibs.
-
Ich weiss, dass ich euch langsam auf die Nerven gehe, aber könntet ihr mir noch sagen, wie ich gegen statische wxLibs linken kann?
-
Statische Libraries bauen (liegen imho dann in gcc_lib),
und im wxWizard bei Projekterstellung entsprechend angeben (statisch statt dynamisch).
-
Super!!! Jetzt funktioniert alles!
Vielen Dank an alle, die mir geholfen haben!Tobias