Problem beim ersten Projekt mit Codeblocks



  • 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 es 🙂

    Gruß 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.



  • @wxSkip

    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 😉


Anmelden zum Antworten