Frage zu Eclipse und C/C++

Gast #2133426
Lesenswert?
• ▲
▼
Hallo alle zusammen,

ich habe eine Frage bei der ich leider nicht weiter komme.
Ich habe ein paar C/C++ Sourcen die ich für ARM cross-kompilieren muss. 
Beispielprojekte funktionieren einwandfrei. Jetzt habe ich jedoch 
folgende Problemstellung:

Ich habe 2 Projekte (bevor jemand fragt - es geht leider nicht anders):
A) Dieses Projekt kann ich kompilieren und ich erhalte eine calculator.o 
und die dazugehörige calculator.h

B) Ich möchte eine Methode aus calculator.h in diesem Projekt verwenden. 
Leider weiß ich nicht was ich bei Eclipse einstellen muss, dass dieser 
das ganze richtig erkennt. Ich kann leider nicht die Sourcen von A) 
direkt einbinden. Kann mir jemand sagen was ich in den 
Projekt-Properties unter C/C++ Build --> Settings alles einstellen muss?

Es wäre prima, wenn mir jemand weiterhelfen könnte.

Danke und Gruß
Klaus E.
Gast #2134227
Lesenswert?
• ▲
▼
Hallo Oliver,

danke für deine Info. Jetzt kann ich die .o-Files mit einbeziehen:

g++.exe -oB C:\eclipse\workspace\A\Debug\src\calculator.o

Eine Frage/Problem habe ich allerdings noch:
Neuerdings (speziell seitdem ich die .o eingebunden habe) zieht er mir 
meine normalen .cpp-Dateien nicht mehr in den Kompilierungsprozess mit 
ein sondern versucht nur aus meiner calculator.o ein Programm zu bauen. 
Dadurch, dass es da keine main gibt bekomme ich eben folgende 
Fehlermeldung:
In function `_start':
: undefined reference to `main'

Was muss ich machen, damit er auch die anderen Dateien mit 
einkompiliert?

Gruß
Klaus E.
Gast #2134323
Lesenswert?
• ▲
▼
> Nutzt du Eclipse, mit dem ARM-Plugin, oder rufst du den Compiler von der
> Kommandozeile aus auf?

Ich bin im Moment auf beiden Schienen am probieren, da ich nicht weiter 
komme.

Eclipse mit ARM plugin will nicht mehr meine cpp-Dateien mit 
kompilieren. Eclipse tut so als ob diese nicht existieren.

Auf der Konsole versuche ich das ganze mit folgendem Befehl:
arm-unknown-linux-gnu-g++.exe -Wall -oB b1.cpp b2.cpp b3.cpp b4.cpp 
C:\eclipse\workspace\A\Debug\src\calculator.o
b1.cpp enthält meine main.
A besteht aus calculator.c und calculator.h sowie einer anderen mymain.c 
die eine main enhält, mymain.o jedoch nicht in B verwendet wird.
calculator.c beinhaltet eine Methode getNumber(), deren Methodenkopf 
auch in calculator.h eingefügt ist. calculator.h habe ich sogar mit in 
den src-Ordner von B geworfen und in b1.cpp mittels #include 
"calcuator.h" eingebunden.
Beim kompillieren bekomme ich jedoch die Fehlermeldung, das die Methode 
getNumber() nicht gefunden wurde:
[...]ccwD2DZA.o(.text+0x40): In function `go()':
: undefined reference to `getNumber()'

Ich bin relativ ratlos was ich falsch mache.

Gruß
Klaus
Gast #2134342
Lesenswert?
• ▲
▼
Klaus E. schrieb:
> Ich bin relativ ratlos was ich falsch mache.

Na ja, frank und frei gesprochen, versuchst du Dinge per trial and 
error, die sich nicht per trial and error lösen lassen. Deine gezeigte 
Compilerzeile ist, nun ja, bullshit.

Entweder wühlst du dich durchrs WWW, und liest solange, bis du den 
Aufruf vom Compiler und Linker mit seinen Optionen verstanden hast, 
(besser wäre es allerdings, du suchst dir funktionierende makefiles, und 
passt die an), oder du findest raus, warum Eclipse "plötzlich" deine 
.cpp-files ignoriert. Am besten startest du da mit einem neuen, leeren 
Projekt.

Oliver

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.