www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atollic TrueSTUDIO STM32F4 mit C++ undefined reference to `main' und co.


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Denis SagIchNicht (h44656e)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo Zusammen,
ich muss euch um eure Hilfe bitten.
Ich versuche mit „Atollic TrueSTUDIO for STMicroelectronics STM32 Lite 
2.3.0“ ein Projekt mit C++ ans Laufen zu bringen.
Dabei bekomme ich die Fehlermeldungen:

undefined reference to `main' in
startup_stm32f4xx.s

undefined reference to `EVAL_AUDIO_TransferComplete_CallBack' in 
stm32f4_discovery_audio_codec.c

undefined reference to `EVAL_AUDIO_GetSampleCallBack' in
stm32f4_discovery_audio_codec.c


ich habe bis jetzt keine Lösung finden. Vielleicht hat jemand von euch 
eine Idee.
Gruß
Denis

Autor: Matthias Sch. (Firma: Matzetronics) (mschoeldgen)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Denis SagIchNicht schrieb:
> undefined reference to `main' in
> startup_stm32f4xx.s

Klingt vllt. doof, aber hast du denn eine
 
int main(void)
in deinem Programm ? Ohne die gehts nicht.

Denis SagIchNicht schrieb:
> undefined reference to `EVAL_AUDIO_TransferComplete_CallBack' in
> stm32f4_discovery_audio_codec.c

Es sieht danach aus, als hättest du das entsprechende *.c file nicht als 
linked resource drin. Schau im Projekt, ob unter 'StdPeriph_Driver' die 
Datei drin ist, die diese Funktionen enthält.
Ansonsten, rechtsklick auf Std_PeriphDriver->New...->File->'Advanced' 
klicken->'Link to File in System' und dann mit 'Browse' die Datei 
suchen. Könnte mir vorstellen, das sie heisst wie 'stm32f40x_audio.c' 
oder so.

Autor: Denis SagIchNicht (h44656e)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Das ist es ja.

Das ganze habe ich bis einem gewissem grad in C geschrieben.
Die main – Funktion und LCD Ansteuerung habe ich problemlos laufen 
lassen.
Jetzt versuche ich das Ganze in C++ zu überführen, da ich ein C++ 
Projekt teilweise übernehmen möchte (aus Keil).  Ich habe die Dateien in 
*.cpp (die *.c  waren) umbenannt. Die Datei in der main liegt habe ich 
versucht auch zurück zu umbenennen. Jetzt ist es fest verfummelt.

Gruß
Denis

Autor: hp-freund (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert

Autor: Denis SagIchNicht (h44656e)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
:-( das ist ja ganz doof!

trotzdem vielen dank!

Autor: Denis SagIchNicht (h44656e)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
...
es gibt ja toolchain mit Eclipse, die frage ist, ob jemand eine 
anleitung für windows kennt, mit der mann auch C++ Projekte anlegen 
kann.

Autor: Tec Nologic (tecnologic)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Moin,,

Da ich das ganze auch gerade durch exerziere hier ein paar Tips.

1. die Callback Functions zu denen du undefined Refs hattest kommen aus 
den STM32F4-discovery_codec... h/c Dateien, wenn du den Codec verwenden 
willst musst du die irgendwo definieren.

2. alles was nicht Cpp ist kommt in
extern "C"{
}
rein sonst spuckt der Linker auch undefined refs aus ( speziell bei den 
CallBacks wichtig da die aus C-Code aufgerufen werden )

3. Wenn du Eclipse unter Windows einrichten willst dann schau mal auf 
der Seite von ChibiOS/RT dort gibt es gute Guides dazu. Oder du schaust 
bei
www.stf12.org vorbei. Dort gibts ne fertig konfigurierte Eclipse Indigo 
für Mac OSX und Win.

4. Wenn du ein OS verwenden willst ChibiOS hat einen recht guten Wrapper 
für Cpp, aber ich bevorzuge die FreeRTOS Extension Class von stf12.org

5. Wenn du dir mal etwas Code ansehen willst fürs STm32F4 in Cpp dann 
schau mal hier
http://code.google.com/p/thundercyer-the-alarm-clock/
ist aber noch lange nicht fertig ich arbeit noch dran.

Viel Erfolg

MfG

Tec

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net