Problem beim ersten Projekt mit Codeblocks
-
ich habe es mit dem Tutorial gemacht :
http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef
-
Soweit schon mal gut. Was steht denn bei deinen Linker-Suchpfaden und hast du auch die richtigen Projekteinstellungen vorgenommen (bei diesem Fenster mit [Use wxWidgets as a monolithic Library], [Use wxWidgets DLL] und [Unicode build])?
-
Also als base habe ich den Stammordner von WxWidgets angegebe, als include den unterordner include und als lib den Unterordner lib.
Und in den einstellung habe ich alles nach einer anderen Anleitung!
-
Kannst du mal bitte sagen, _welche_ Häkchen du gesetzt hast und _welche_ Kompiliereinstellungen du verwendet hast? Aber übrigens: im lib-Ordner liegen keine Libraries. Die liegen bei lib\gcc_lib oder lib\gcc_dll. Vielleicht solltest du das abändern.
-
http://www.bilder-space.de/show_img.php?img=ad22c9-1294252852.jpg&size=original
das sind meine einstellungen!!
-
Okay, kannst du dann mal bitte checken, ob du die Datei <wxWidgets-Dir>\lib\gcc_dll\libwxmsw28.a hast?
-
Nein aber <wxWidgets\lib\gcc_dll\libwxmsw28u.a>
-
Vielen Dank für deine Hilfe, er hat beim erstellen der Libaries 2 Fehler gehabt
Aber jetzt geht esGruß Drankaner
-
Ich möchte mich hier anhängen, um nicht extra ein weiteren thread zu eröffnen.
Also ich habe Folgende Fehlermeldungen:
||=== LCD_TEST_02, Debug ===| F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_dllimp.h|149|warning: no newline at end of file| F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp||In function `int main(int, _TCHAR**)':| F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|113|warning: comparison between signed and unsigned integer expressions| F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|114|warning: comparison between signed and unsigned integer expressions| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x4bb)||In function `main':| F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|67|undefined reference to `_imp__LgOpenLcdDevice'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x59a):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|88|undefined reference to `_imp__LgGetDisplayLight'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x7b5):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|91|undefined reference to `_imp__LgSetDisplayLight'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x827):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|94|undefined reference to `_imp__LgGetKeyboardLight'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xa42):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|97|undefined reference to `_imp__LgSetKeyboardLight'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xab4):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|100|undefined reference to `_imp__LgGetMLights'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xd2a):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|103|undefined reference to `_imp__LgSetMLights'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xdb2):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|108|undefined reference to `_imp__LgSetContrast'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xec8):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|118|undefined reference to `_imp__LgSetDisplayData'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xf41):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|121|undefined reference to `_imp__LgSetGKeyCallbackFunction'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0xfb0):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|122|undefined reference to `_imp__LgSetKeyboardKeyCallbackFunction'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x101f):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|123|undefined reference to `_imp__LgSetMediaKeyCallbackFunction'| obj\Debug\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.o(.text+0x111c):F:\Datensicherung\Geschriebene Programme\C++\LCD_CPP\c\lglcd_dda_test\lglcd_dda_test.cpp|135|undefined reference to `_imp__LgFreeLcdDevice'| ||=== Build finished: 13 errors, 3 warnings ===|
was heißt undefined refernece to _imp_*********
Diese Methoden stammen aus einem Wrapper, welcher mir die Möglichkeit geben sollte, programme für meinen LCD Display zu schreiben. Doch scheiter ich an dieser unzulänglichen erklärung. Bzw scheint es was mit Zeigern?! zu tun haben.Vll kann jemand mit mehr Hintergrundwissen mir einen Tip/Lösung geben.
mfg Chrisotpher Freytag
-
sieht aus, als wenn du noch die ein oder andere Library dazulinken musst.
Vermutlich sowas wie "lglcd_dda_dll.dll".Das geht bei Code::Blocks im Menu unter Project >> Build options...
Dort den Reiter für Linker settings auswählen.
Dann die Library hinzulinken)Wo die DLL bei dir liegt, weiß ich allerdings nicht.
-
Ich danke dir vielmals, woran hast du dass denn nun erkannt?
Bzw woran könnte ich dies erkennen?
-
Das ne Library fehlt, lässt sich an "undefined reference" vermuten.
Das es "lglcd_dda_dll.dll" ist, findet man bei google in Zusammenhang mit der Funktion "LgOpenLcdDevice"
-
Ahhh *hand vor den Kopf klatsch*
Nun habe ich schon wieder eine Fehlermeldung und zwar:
F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\lglcd_dda_dllimp.h|149|warning: no newline at end of file| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected unqualified-id before "for"| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected `,' or `;' before "for"| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected constructor, destructor, or type conversion before '<' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected `,' or `;' before '<' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected constructor, destructor, or type conversion before '++' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|18|error: expected `,' or `;' before '++' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|27|error: expected constructor, destructor, or type conversion before '(' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|27|error: expected `,' or `;' before '(' token| F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\LCD_TEST.cpp|28|error: expected constructor, destructor, or type conversion before ';' token| ||=== Build finished: 9 errors, 1 warnings ===|
Dies erfolgt bei folgendem Code:
#include <iostream> #include <F:\Datensicherung\Geschriebene Programme\C++\LCD_TEST_03_CODE_BLOCKS\stdafx.h> using namespace std; template<typename T> string toStr(T var) { std::ostringstream Str; Str << var; return Str.str(); } DWORD KeybdVer = 0; LCDDEVICE Device = LgOpenLcdDevice(0, FALSE, &KeybdVer); DISPLAYDATA DisplayImage; int x, y; for(x = 0;x<(LGLCD_BMP_HEIGHT / 8)+1;x++) { for(y = 0;y<LGLCD_BMP_WIDTH;y++) { DisplayImage.data[x][y] = rand() % 0x100; //Fill display-data array with random data } } LgSetDisplayData (Device,&DisplayImage); LgFreeLcdDevice(LCDDEVICE Device);
Wo mache ich hier wieder meinen Fehler? So weit ich weiß müssten eigentlich alle Kontruktoren innerhalb der Wrapperklasse oder der anderen #includes enstehen, zumindest sehe ich bei der Beispiel .cpp datei keinen Konstruktor
mfg Chrisotpher
-
EDIT: Blödsinn
Das mit dem voll ausgeschriebenen Include-Pfad habe ich so noch nie gesehen, da solltest du evtl. eher einen Include-Suchordner angeben, sonst kannst du dein Projekt nicht ohne größeren Aufwand verschieben.
-
Teile deines Codes schwirren einfach so in der Datei herum.
Der folgende Teil müsste in eine Funktion
DWORD KeybdVer = 0; LCDDEVICE Device = LgOpenLcdDevice(0, FALSE, &KeybdVer); DISPLAYDATA DisplayImage; int x, y; for(x = 0;x<(LGLCD_BMP_HEIGHT / 8)+1;x++) { for(y = 0;y<LGLCD_BMP_WIDTH;y++) { DisplayImage.data[x][y] = rand() % 0x100; //Fill display-data array with random data } } LgSetDisplayData (Device,&DisplayImage); LgFreeLcdDevice(LCDDEVICE Device);
EDIT: Die letzte Zeile natürlich nicht, da es eine Funktionsdeklaration ist.
-
Das mit dem voll ausgeschriebenen Include-Pfad habe ich so noch nie gesehen, da solltest du evtl. eher einen Include-Suchordner angeben, sonst kannst du dein Projekt nicht ohne größeren Aufwand verschieben.
Der vollständige Includepfad ist absicht und dient mir nur kurzfristiger "Kompatibilität". Ich habe mehrere IDEs auf meinem Rechner. Um diese ausgiebig zu testen und wollte jetzt nicht jedes mal meine Include verzeichnisse Editieren, da ich strikt Die Einstellungen der einzelnen IDEs trenne!
@Basic Ok hast recht, dass habe ich mal wieder übersehen. Entschuldige und danke für die Hilfe