wxWidgets kompilieren und nutzen - Ich verzweifele langsam...
-
Bei wxWidgets gibts nen Ordner, der heisst "Docs"
naja nee in Linux isses nur die Standard configure und make Prozedur
und in Windows hat man für 1000 Compiler die MakeFiles, da muss man
vorher in der config.mak oder sowas rumbasteln und bekommt dann das
schöne Ergebnis in irgendnem Unterordner ...halt ma die Docs lesen, da dürfte alles drinstehn
-
lol nochma ich, in dem Thread darunter stand ne Kommandozeile, wie:
C:\___\wxWidgets-2.6.3\build\msw> make -f makefile.gcc
also ! Kommandozeile -> ins wxWidgets-Verzeichnis
dann dar Unterordner build\msw und dann
"make -f *Makefile-für-richtigen-Kompiler*"
-
Unter Windows habe ich ja schon das Problem das ich noch nicht mal MinGW zum laufen Kriege...
Unter Linux gibt es zwar Pakete aber die enthalten noch nicht die aktuellste Version. Und da ich sowieso lernen muss wie das alles geht wollte ich mir die selber bauen...
Zuerst scheiterte ich daran das die "configure" gesagt hat das ich keinen Compiler habe. Nach dem ich irgendwann aus verzweifelung gcc 3.3, 3.4 und 4.0 installiert hatte (übers Paketsystem) gings dann. Im moment hängt er bei dieser Zeile:checking for strcasecmp() in string.h... no checking for strcasecmp() in strings.h... no configure: error: No case-insensitive string comparison function found.
Ich weiß zwar was es heißt aber ich weiß nicht mal im ansatz wie ich das beheben soll...
EDIT: Ich habe jetzt libgtk2.0-dev in der aktuellsten version nachinstalliert. Es bleibt jedoch beim genannten fehler.
-
Prophet05 schrieb:
Im moment hängt er bei dieser Zeile:
checking for strcasecmp() in string.h... no checking for strcasecmp() in strings.h... no configure: error: No case-insensitive string comparison function found.
Gibt es bei Ubuntu evtl. ein Paket mit dem Namen libc-dev, libc6-dev, glibc-dev oder so ähnlich?
-
Also MinGW solltest du schon zu benutzen wissen, sonst kannst du das alles vergessen.
Stell einfach im PATH den bin-Pfad von Mingw ein, z.B. so:
set PATH=%PATH%;C:\MinGW\bin\
Dann kannst du entsprechende Makes und Projektfiles starten, da jetzt MinGW bekannt ist.
Da du aber nicht der einzige bist, der Schwierigkeiten hat es zu bauen, vorallem weil wxWidgets wirklich ein paar Stolperfallen hat, gibts das wxPack seit ein paar Monaten:
http://wxpack.sourceforge.net/
Das ist schon alles fertig gebaut für Windows, also komplette Binaries und auch Projekt-Wizards für VC++. Ist zwar groß der Download, aber lohnt sich sicherlich.
-
@yentz: Ich habe wegen den Paketen mal nachgeschaut:
> libc-dev - Finde ich nicht.
> libc6-dev - Ist bereits installiert.
> glibc-dev - Finde ich nur das doc Paket.@Artchi: Danke für die Seite aber wenn dann würde ich es gerne richtig lernen (Wie heißt es so schon: Gib dem hungernden essen und er ist satt, zeige ihm zu jagen und er wird nie mehr hungern
).
ICh bin im moment unter Linux. Werde das nächste mal unter Windows versuchen MinGW zu installieren und mal schauen was mir da so passiertVielen dank für eure Hilfsbereitschaft!
-
Prophet05 schrieb:
> libc-dev - Finde ich nicht.
> libc6-dev - Ist bereits installiert.
> glibc-dev - Finde ich nur das doc Paket.Schau mal nach, ob du das Paket 'g++' installiert hast. Und falls es gibt, evtl. noch die entsprechenden Development-Pakete zu g++.
In der Newsgroup comp.soft-sys.wxwindows hatte jdn das gleiche Problem wie du. Hier der Link bei Google-Groups dazu.
-
Ich habe g++ installiert und nun konnte ich "configure" fehlerfrei ausführen.
Leider gab es bei der ausführung von "make" einige Probleme bei dennen ich wieder nicht weiß wie ich sie beheben kann...
k$ make ./bk-deps g++ -c -o odbcdll_db.o -I.pch/wxprec_odbcdll -D__WXGTK__ -I../src/tiff -I../src/jpeg -I../src/odbc -I../src/regex -DwxUSE_GUI=0 -DWXUSINGDLL -DWXMAKINGDLL_ODBC -fPIC -DPIC -DWX_PRECOMP -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_IODBC_ -Ilib/wx/include/gtk2-unicode-release-2.7 -I../include -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -fno-rtti -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing ../src/common/db.cpp ../src/common/db.cpp: In member function »bool wxDb::Open(const wxString&, void*, bool)«: ../src/common/db.cpp:861: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »3« nach »RETCODE SQLDriverConnect(void*, void*, UCHAR*, SWORD, UCHAR*, SWORD, SWORD*, UWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::Open(const wxString&, const wxString&, const wxString&, bool)«: ../src/common/db.cpp:906: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »2« nach »RETCODE SQLConnect(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::Open(wxDb*)«: ../src/common/db.cpp:966: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »3« nach »RETCODE SQLDriverConnect(void*, void*, UCHAR*, SWORD, UCHAR*, SWORD, SWORD*, UWORD)« umgewandelt werden ../src/common/db.cpp:981: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »2« nach »RETCODE SQLConnect(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::getDataTypeInfo(SWORD, wxDbSqlTypeInfo&)«: ../src/common/db.cpp:1664: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »bool wxDb::DispAllErrors(void*, void*, void*)«: ../src/common/db.cpp:1826: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLError(void*, void*, void*, UCHAR*, SDWORD*, UCHAR*, SWORD, SWORD*)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::GetNextError(void*, void*, void*)«: ../src/common/db.cpp:1853: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLError(void*, void*, void*, UCHAR*, SDWORD*, UCHAR*, SWORD, SWORD*)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::DropView(const wxString&)«: ../src/common/db.cpp:2210: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »2« nach »RETCODE SQLExecDirect(void*, UCHAR*, SDWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::ExecSql(const wxString&)«: ../src/common/db.cpp:2243: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »2« nach »RETCODE SQLExecDirect(void*, UCHAR*, SDWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::GetData(UWORD, SWORD, void*, SDWORD, SQLINTEGER*)«: ../src/common/db.cpp:2379: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »int wxDb::GetKeyFields(const wxString&, wxDbColInf*, UWORD)«: ../src/common/db.cpp:2424: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLPrimaryKeys(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2435: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:2454: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLForeignKeys(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2467: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:2500: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »12« nach »RETCODE SQLForeignKeys(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2512: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »wxDbColInf* wxDb::GetColumns(wxChar**, const wxChar*)«: ../src/common/db.cpp:2620: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2628: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2648: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »wxDbColInf* wxDb::GetColumns(const wxString&, UWORD*, const wxChar*)«: ../src/common/db.cpp:2776: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2784: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:2806: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »int wxDb::GetColumnCount(const wxString&, const wxChar*)«: ../src/common/db.cpp:3283: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3291: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp: In member function »wxDbInf* wxDb::GetCatalog(const wxChar*)«: ../src/common/db.cpp:3376: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLTables(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3401: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3414: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »bool wxDb::Catalog(const wxChar*, const wxString&)«: ../src/common/db.cpp:3483: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLColumns(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3510: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In member function »bool wxDb::TableExists(const wxString&, const wxChar*, const wxString&)«: ../src/common/db.cpp:3618: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLTables(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3626: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLTables(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::TablePrivileges(const wxString&, const wxString&, const wxChar*, const wxChar*, const wxString&)«:../src/common/db.cpp:3685: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »4« nach »RETCODE SQLTablePrivileges(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3692: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »6« nach »RETCODE SQLTablePrivileges(void*, UCHAR*, SWORD, UCHAR*, SWORD, UCHAR*, SWORD)« umgewandelt werden ../src/common/db.cpp:3706: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3709: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3712: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3715: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3718: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3721: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp:3724: Fehler: »SQL_C_WCHAR« wurde in diesem Gültigkeitsbereich nicht definiert ../src/common/db.cpp: In function »bool wxDbGetDataSource(void*, wxChar*, SWORD, wxChar*, SWORD, UWORD)«: ../src/common/db.cpp:4438: Fehler: »SQLTCHAR*« kann nicht nach »UCHAR*« für Argument »3« nach »RETCODE SQLDataSources(void*, UWORD, UCHAR*, SWORD, SWORD*, UCHAR*, SWORD, SWORD*)« umgewandelt werden ../src/common/db.cpp: In member function »bool wxDb::GetNextError(void*, void*, void*)«: ../src/common/db.cpp:1858: Warnung: Kontrollfluss erreicht Ende einer Nicht-void-Funktion ../src/common/db.cpp: In function »bool wxDbGetDataSource(void*, wxChar*, SWORD, wxChar*, SWORD, UWORD)«: ../src/common/db.cpp:4443: Warnung: Kontrollfluss erreicht Ende einer Nicht-void-Funktion make: *** [odbcdll_db.o] Fehler 1
-
Prophet05 schrieb:
Leider gab es bei der ausführung von "make" einige Probleme bei dennen ich wieder nicht weiß wie ich sie beheben kann...
Hab bei mir momentan noch 2.6.2 laufen und das läuft problemlos. Testweise hab ich jetzt 2.7.1 übersetzt. So wie's aussah hattest du 'configure' mit '--enable-unicode' und '--with-odbc'. Hab das damit jetzt auch mal laufen lassen und beim compilieren den gleichen Fehler wie du. An deiner Stelle würd ich jetzt einfach das aktuelle Stable-Release (2.6.3) verwenden da 2.7.1 ein Development-Release ist. Falls du das aber unbedingt verwenden willst und hier keiner ne Antwort weiß, könntest du es auch mal in der oben genannten Newsgroup versuchen. Die wxWidgets-Entwickler lesen und schreiben dort auch.
-
So wie's aussieht liegt das Problem nicht unbedingt an der Version 2.7.1 sondern es tritt auch bei früheren Versionen auf, wenn man bei wxGTK '--enable-unicode' zusammen mit '--with-odbc' aktiviert. Die beiden Option schließen sich gegenseitig aus. Man kann das Problem wohl umgehen, wenn man statt der in wxWidgets eingebauten ODBC-Bibliothek eine externe verwendet, die aber auch noch in der richtigen Version vorliegen muss. Genau hab ich das jetzt aber auch nicht nachgelesen. Wie das bei Windows oder Mac aussieht weiß ich nicht.
-
Oh das wusste ich noch nicht. Ich dachte 2.7.0 wäre die aktuelle stable. Ich habe mir nun 2.6.3 heruntergeladen und alles hat einwandfrei funktioniert. Vielen dank für eure hilfe! Wenn ich noch weitere fragen habe melde ich mich nochmal bei euch.