www.mikrocontroller.net

Forum: Compiler & IDEs C, undefined reference to xxx


Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab ein header file  xxx.h geschrieben mit ein paar Definitionen
und Funktionen (bzw Funktionsheadern) fuer die RS232; dazu ein
implementation file xxx.cpp wo die ganzen Funktionen ausgeschrieben
sind.
in meinerm Hauptprogramm schreibe ich nun #include "xxx.h" aber er
bringt mir als Fehlermeldung immer: undefined reference to sendRTC oder
zie auch immer die Funktionen heissen... Die header und impl. Dateien
sind i, gleichen ORdner wie das Hauptfile.

eigentlich muesste es doch funktionieren, tut aber nicht. Ich arbeite
unter linux.

mersi fuer eure Tips,
Johannes

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Trag die *.c Datei noch im Makefile ein.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo finde ich das makefile?

Ich verwende ganz einfach den g++ compiler in einem linux-terminal

Johannes

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du g++ direkt aufrufst, musst du alle .cpp-Dateien auf der
Kommandozeile übergeben, nicht nur die, in der main() definiert ist.

Ich würd dir aber raten, ein einfaches Makefile zu erstellen, damit
verkürzt sich zum einen deine Compile-Zeit und zum anderen deine
Schreibarbeit (unter Linux ist gnu make eh fast immer vorhanden).

Einfache Beispiele und die Komplettanleitung zu make gibts hier:
http://www.gnu.org/software/make/manual/make.html

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
g++ -c -Wall datei1.cpp
  g++ -c -Wall datei2.cpp
  g++ -c -Wall datei3.cpp
  g++ -o programm datei1.o datei2.o datei3.o

Oder, wenn Du Compilieren und Linken in einem Schritt machen willst:

  g++ -Wall -o programm datei1.cpp datei2.cpp datei3.cpp

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke fuer die Tips. "ich wurde damit geholfen"

Johannes

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.