Hey, ich hab nun Eclipse Kepler mit CDT, GDB, OpenOCD, Yagarto und Sourcery CodeBench Lite zum laufen gebracht. Es funktioniert eigentlich alles solange ich nur C-Code habe. Sobald ich aber eine Klasse erstelle bekomme ich Linker Probleme.... Der Fehler: 17:22:34 **** Incremental Build of configuration Release for project DigiPot **** cs_make all Building target: DigiPot.elf Invoking: Cross ARM C++ Linker arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g -T libs.ld -T mem.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../ldscripts" -Wl,-Map,"DigiPot.map" -o "DigiPot.elf" ./src/test/main.o ... ./src/test/main.o: In function `_GLOBAL__sub_I_LED_Green': C:\Dokumente und Einstellungen\ENG2\Desktop\RFID\eclipse\workspace\DigiPot\Release/../src /test/main.cpp:107: undefined reference to `__dso_handle' c:/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8 .1/../../../../arm-none-eabi/bin/ld.exe: DigiPot.elf: hidden symbol `__dso_handle' isn't defined c:/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8 .1/../../../../arm-none-eabi/bin/ld.exe: final link failed: Bad value collect2.exe: error: ld returned 1 exit status cs_make: *** [DigiPot.elf] Error 1 Ich werde nicht Schlau daraus. Es wird doch der C++ Linker genutzt... Weiß jemand weiter?! Wäre super! Vielen Dank!! Gruß Jonas
Hey, also das bringt mich leider auch nicht weiter... Ich kann noch dazu sagen das ich ein C++ Projekt template für den STM32F4 genutzt habe. Dieses wird ja beim erstellen eines neuen Projekts unter Executable angeboten. Den Code den ich versuche zu compelieren kann ich mit anderen IDEs ohne Probleme umsetzen z.B. mit IAR oder EM::Blocks. Gruß Jonas und danke für die Unterstützung
Jonas Damhuis schrieb: > Weiß jemand weiter?! Wäre super! Vielen Dank!! Ich kann dir die Fehlermeldung übersetzen. Der Linker wird genötigt auf `__dso_handle' zuzugreifen und findet es nicht. Variablen mit führenden Unterstrich sind interne Geschichten. In deinem Fall heisst dass sicherlich Zugriff auf das Betriebssystem. Das du es compilieren kannst scheint, dass es zumindest eine Menge stimmt. Es könnte gut sein, dass du Librarys oder weitere Dateien vom Betriebssystem oder dem Linker übergeben musst. -l library Search the library named library when linking. Vielleicht kannst du in link Optionen beim IAR einschauen. René
Hey danke für die Beschreibung. Also bei Em::Blocks und IAR musste ich bei den Linker Settings immer angeben das er C++ Librarys nutzen soll. Wie mache ich das nun bei Eclips?!.... Dazu versteh ich leider auch nicht wo ich die Befehle wie bei dir oben -l library eingeben muss... Gruß Jonas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.