Code::Blocks, MinGW, und wxWidgets - Hilfe bei Konfiguration dringend benötigt!



  • Servus zusammen!

    Statt jetzt endlich anzufangen mit wxWidgets (2.8.0) zu programmieren bzw. es erst einmal zu lernen, schlage ich mich seit Tagen mit anderen Problemen herum. Und zwar... *tief luft holen*

    Jedes in Code::Blocks (v1.0 RC2) erstellte wxWidgets-Project bzw. die nach dem Compilieren entstandene .EXE-Datei verlangt wxmsw26_gcc_custom.dll im selben Verzeichnis wie meine .EXE-Datei. Grund dafür ist offentsichtlich, dass ich in C::B die Project Option "Using wxWidgets DLL" ausgewählt habe. "Using static wxWidgets library" funktioniert nicht -- anscheinend ist die Anleitung auf wxWiki nicht dafür gedacht.

    Außerdem habe ich in diesem Artikel gelesen, dass man nicht nur eine einzige große (monolithic?) Library bauen kann (meine oben erwähnte wxmsw26_gcc_custom.dll ist ja auch nur stolze 9,17 MB groß 😮 ), sondern auch viele kleine Libraries die nur bei Bedarf in das Project eingebunden werden (zumindest habe ich das so verstanden).

    Übrigens habe ich wxWidgets derzeit genau so (re-)installiert, wie es in dem Artikel gezeigt wird. Das heißt auch, dass ich jetzt MSYS installiert und - wegen Problemen beim Post-Install - auch gleich MinGW (3.4.2) komplett neu installiert habe. Auch der Testbuild (minimal.exe) wird compiliert und läuft. Allerdings kann ich in C::B jetzt weder mit "using DLL" noch "using static libs" kompilieren; C:\wxWidgets-2.8.0\wx\platform.h (in line 196) wx/setup.h: No such file or directory

    Soviel zu dem was ich habe, und jetzt zu dem was ich gerne hätte. 😉

    1. Die Möglichkeit, sowohl "Using wxWidgets DLL" als auch "Using static wxWidgets library" zu verwenden (ohne UNICODE; brauche ich derweil noch nicht). Ich glaube zu wissen, dass ich dazu wxWidgets zwei Mal kompilieren muss, nur weiß ich nicht wie ich das machen soll. wxWiki ist da auch nicht wirklich eine Hilfe.
    2. Ich will keine monolithic Libraries verwenden; eine 9,17 MB große DLL für ein 140 KB kleines Progrämmchen ist lächerlich. Außerdem sollten die Libraries so klein wie möglich sein, also keine Debug-Versionen; hab da irgendwas von wegen "optimization level 4" gelesen, bin mir aber nicht sicher, ob das jetzt so stimmt bzw. hier überhaupt dazu gehört.
    3. Und auch wenn das jetzt überaus lächerlich klingt: Es zipft mich kräftig an, dass ich in C::B bei jedem neuen Project erstmal unter "Projects -> Build options -> Custom variables" die Variable WX_DIR auf "C:\wxWidgets-2.8.0" ändern darf. Das ist so unglaublich lästig, ich kann's gar nicht in Worte fassen. 😡 Ich glaube zwar, dass man das mittels User-Template Projects lösen kann, bin mir aber - mal wieder - nicht sicher.

    Das Ganze läuft also darauf hinaus, dass mir jemand erklärt, wie ich wxWidgets entsprechend installiere/compliere (ob mit oder ohne MSYS ist mir egal), und wie ich C::B entsprechend konfiguriere, dass ich problemlos entweder DLLs oder static libraries verwenden kann. Und nachdem ich a) ohnehin nicht viel weiß (siehe Signatur), und b) ich inzwischen doch einigermaßen verwirrt bin, sollte das wenn möglich eine Schritt-für-Schritt Anleitung sein.

    Ich weiß, dass ich einerseits um sehr viele bitte, und andererseits der ganze Schlamasel in meiner eigenen Unfähigkeit begründet liegt. Trotzdem - oder gerade deswegen - weiß ich jede hilfreiche Antwort zu schätzen. 🙂

    Servus derweil!


  • Mod

    Hm, kann die Config von C::B auch nicht immer verstehen, kopiere meistens die Projekte für den Anfang.
    Auch solltest du dir für C::B einen nightly installieren, RC1/2 sind nicht mehr zu empfehlen.

    Mit wx2.8 hab ich leider noch keine Erfahrung sammeln können, mangels Zeit. Werde mir aber die nächsten Tage das mal anschauen.

    Was die .dll Fehler angeht, wenn du mit .dlls arbeitest, sollte im gleichen Verzeichnis oder im systemverzeichnis auch diese
    DLL liegen, sonst findet das Programm sie nicht -> Fehler.
    Ich arbeite meistens mit statisch gelinkten Programmen, weil sie bei kleineren Programmen sinnvoller sein können.

    phlox



  • Servus!

    phlox81 schrieb:

    Hm, kann die Config von C::B auch nicht immer verstehen, kopiere meistens die Projekte für den Anfang.

    Jaja, das kennen wir wohl alle: vor 'nem neuen Project erst mal alles vom Alten in 'nen anderen Ordner kopieren. Darum 'ne kurze Zwischenfrage: lohnt sich der Umstieg von C::B auf Dev-C++ oder MinGW Development Studio? Ich hab ursprünglich auf Dev-C++ gearbeitet, aber mir wurde der Umstieg auf C::B empfohlen weil Dev-C++ angeblich einige nicht lösbare Bugs hat.

    phlox81 schrieb:

    Auch solltest du dir für C::B einen nightly installieren, RC1/2 sind nicht mehr zu empfehlen.

    Ich weiß nicht so recht. Eigentlich sind mir stable builds (in dem Fall also v1 RC2) weit lieber als nightly builds. Werd's aber mal versuchen.

    phlox81 schrieb:

    Mit wx2.8 hab ich leider noch keine Erfahrung sammeln können, mangels Zeit. Werde mir aber die nächsten Tage das mal anschauen.

    Eigentlich geht es gar nicht so sehr um die Version von wxWidgets, denke ich. Wie man die verschiedenen Optionen für's Kompilieren benutzt und welche das eigentlich sind, sollte ja gleich geblieben sein. Würde mich aber nicht wundern, wenn's gerade jetzt geändert worden wäre. Aber laut der INSTALL.TXT für wxMSW gab's da keine Änderungen.

    phlox81 schrieb:

    Was die .dll Fehler angeht, wenn du mit .dlls arbeitest, sollte im gleichen Verzeichnis oder im systemverzeichnis auch diese
    DLL liegen, sonst findet das Programm sie nicht -> Fehler.

    Hab' ich gemerkt. 😉

    phlox81 schrieb:

    Ich arbeite meistens mit statisch gelinkten Programmen, weil sie bei kleineren Programmen sinnvoller sein können.

    Und genau das will ich auch erreichen. Dass ich auf Wunsch auch DLLs statt 'ner static library nehmen kann (also in C::B "Use wxWidgets DLL" auswählen kann) und das dann auch funktioniert, wäre zwar schön, ist in der Zwischenzeit (nach mehr als 2 1/2 Stunden mühsamen lesens von Tutorials, herumprobieren, ärgern weil's nicht funktioniert, wieder lesen, wieder herumprobieren, usw.) aber nicht mehr wirklich wichtig. Sobald meine Projekte jeweils in einer einzigen, möglichst kleinen .EXE ohne DLLs resultieren, schmeiß' ich 'ne Freudenparty. :xmas1:

    Schönen Abend noch! 🙂


  • Mod

    Naja, in den nightlies ist halt vieles besser, zum Beispiel Codevervollständigung.
    Also ich arbeite nur mit nightlies, aber dauert auch immer ne Zeit bis ich mir da dann
    nen neuen hole. (alle 3 monate so.)



  • Gibt's da 'ne nighly die du empfehlen könntest, oder soll ich mir einfach die aktuellste nightly downloaden?


  • Mod

    eigentlich nicht, ausser das du die beiträge im nightly forum lesen solltest, um fehlerhafte nightlies zu vermeiden 🙂


Anmelden zum Antworten