WxWidgets / Bibliotheken

DuffCola

Mitglied
Hallo.
Ich würde gerne WxWidgets benutzten, doch fehlt mir die Verständnis, was die Installation angeht.
In allen Tutorials wird die WxWidgets Bibliothek erst mit dem Mingw32 Compiler compiliert.
Aber warum, warum muss ich die Bibliotkek bei mir erst noch mit irgend einem Compiler compilieren?
Wenn ich mir den WxWidgets Ordner anschaue ist da ja auch mächtig viel unnötiges Zeug noch drin(z.B. Docs, Samples usw...).
Welche Dateien brauche ich alleine ?
Und wie ist die Bibliothek gepeichert ?
Also ich meine Normalerweise hat ja eine Klasse immer eine Header und Quell - Datei, dann habe ich gehört, dass viele stat den Quelldateien die fertig compilierten Module mitgeben, damit man den Quellcode nicht lesen kann.
Und ich möchte eigentlich in der IDE c++ visual Studio express mit WxWidgets arbeiten und nicht mit einem vorgefertigten Projekt, wie es CodeBlocks anbietet.

Ich denke mal, ihr seht wie wenig Ahnung ich habe, was Bibliotheken an geht.
Könnte mir einer Genua erklären, wie dass funktioniert?
 
Ja danke.
Aber trotzdem würde ich gerne wissen wie sowas funktioniert usw..
Z.B. was ist der Release debug usw....
 
Ich möchte eigentlich genau wissen, wie das funktioniert, wenn ich z.B. einfach mithilfe der Konsole(cmd.exe) in verbindung mit dem GNU Compiler jetzt ein Programm compiliere, was muss ich tun, damit ich WxWdigets dort dann verwenden kann?

Alos ich meine mit dem Befehl:
Code:
g++ -o test test.cpp
 
Hallo,

das kommt immer ein darauf an in welchem Format dein wxWidget vorliegt. Sollte es ein Binär-Release sein, nehme ich mal an, dass es als Library vorliegt (also entweder als .lib oder als .dll). Sollte sie statisch sein, musst die Bibliothek noch zu deinem Programm hinzulinken lassen. Dann müsst die die Datei in den Linker Einstellungen deines VS Express Projektes angeben.

Falls du die Klassen und Header auch direkt vorhanden hast, kannst du die verschiedenen benötigten Klassen auch direkt in dein Programm hinein compilieren lassen und brauchst keine extra Klassen-Bibliothek. Meist sollte es aber leichter sein, die vorhandene Klassen-Bibliothek zu verwenden, da die Abhängigkeiten zwischen den Klassen es meist sehr schwer machen nur die Klassen aus dem Paket heraus zu suchen und kompilieren zu lassen, die deine Applikation am Ende auch verwenden wird.

Gruß,
Wolf
 
Mh.
Also ich habe leider nicht die gringste ahnung, was bibliotheken angeh(Was ist eine statische bibliothek?).
Ich habe jetzt den windows installer von wxwidgets installiert, dann gegcleant, und dann compliert.
Jetzt frage ich mich, welche dateien ich brauche.
Also einaml braucht man den include bzw die header dateien.
Dann die lib, aber da gehst schon los, nache dem compilieren sind jetzt in einem extra ordner dll files.
Jetzt muss ich unter VC++-Verzeichnisse den include pfad angeben und den lib pfad.
Mehr nicht, oder habeich was wichtiges vergessen?
 
Eine Bibliothek ist eigentlich nur eine Sammlung von Klassen die bereits für ein bestimmtes System übersetzt (compiliert) wurde. Es gibt einmal die statischen Bibliotheken (unter Windows .lib als Suffix) und die dynamischen (.dll unter Windows).

Ich glaube der Unterschied ist, dass dynamische Bibliotheken nur einmal in den Programm-Speicher geladen werden und dann von allen Programmen, die diese Bibliothek verwenden genutzt werden können. Statische Bibliotheken hingegen werden vom Linker direkt deinem Programm hinzugefügt und können daher auch nur von dem einen Programm verwendet werden. Gleichzeitig "wächst" dein Programm natürlich um den entsprechenden Code-Anteil. Sollte ein anderes Programm jetzt auch Klassen aus der Bibliothek verwenden wollen, muss es ebenfalls die statische Library einbinden. Laufen beide Programm parallel wäre der Code also zweimal im Speicher vorhanden. Ausserdem kannst du bei dynamischen Bibliotheken die Library austauschen falls eine neue KOMPATIBLE Version vorhanden ist, ohne dass du deine Programm neu kompilieren musst. Das geht bei statischen nicht.

Soweit dazu, ich hoffe da ist alles richtig. :p

Was deine letzte Frage angeht, ich glaube unter VC++ solltest du da nicht viel anderes mehr brauchen um dein Programm übersetzen lassen zu können.

Gruß,
Wolf
 
mh das ist schonmal sehr interessant.
So jetzt frage ich mcih, wie ich WxWdigets in c++ Visual Studio einbinden kann.
Kann mir dass jemand erklären(Bitte nicht einfach die standart anleitung kopieren, da ich es mit ihr schon probiert habe)?
 
Als erstes habe ich WxWdigets mit dem mingw32 Compiler compiliert.
Dann habe ich ein leeres Projekt angelegt:
1.png
Dann die Eigenschaften aufgerufen:
2.png
Dann das Include Verzeichnis angegeben:
3.png
Dann das Lib Verzeichnis angegeben:
4.png
So und jetzt, wenni ch versuche wx/wx.h einzubinden bekomme ich 45 Fehler:
5.png

Was mache ich falsch, muss ich vielleicht die einzelnen DLL Files im Linker unter Eingabe noch eingeben(Ist aber meiner Meinung nicht der Fehler, da die erste Fehlermeldung ja besagt, dass wx/setup nicht geöffnet werden kann)?
 
Zurück