• 26.04.2024, 14:23
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 19:03

Windows XP
Visual Studio 2005

Ein ganz einfacher Fall, der sich mir einfach nicht erklären will:

"func.c" kompiliert und inkludiert eine "func.h" - wo die Header zu den Funktionen, welche in der "func.c" definiert werden, drinstehen.

Daraufhin kompiliert die main.cpp und inkludiert dabei die "func.h" und jetzt kommt ein Linkerfehler, weil in der main.cpp eine Funktion, bekannt aus der "func.h", aufgerufen wird, die so nun nicht gefunden wird.

"...nicht aufgelöstes externes Symbol..."

Hat jemand eine Idee?

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

grover

Senior Member

Re: C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 19:23

Im func.h folgendes einfügen:


extern "C" {

// Alles was bisher in func.h drinstand.

}

Die Aufrufkonvention zwischen C/C++ ist unterschiedlich. Daher findet der C++-Compiler deine C Funktionen nicht, weil er sie nach der C++-Konvention sucht.

Re: C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 21:21

Wichtig ist natürlich, dass die Object-Files der func.c und der main.c zusammengelinkt werden (sollten sie, wenn sie im selben Projekt sind).
Sonst bekommst Du natürlich einen Linkerfehler, da durch das inkludieren des h-Files die Signatur der Funktion bekannt ist (wenn nicht, gäbs ja schon nen Compilerfehler), aber wenn die Datei nicht dazugelinkt wird, fehlt natürlich der Code dazu.
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

Re: C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 21:29

> Problem mit dem Linken
Achtung, Wortwitz: Da musst du wohl mal nach dem Rechten sehen! ;D

Re: C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 22:21

Grover hatte recht.
Y0Gi war komisch.
-Joker- hat meinen Post nicht korrekt gelesen: "main.cpp" :)

Vielen Dank Leute! Funzt :)

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Re: C++ - Problem mit dem Linken

Dienstag, 14. August 2007, 23:00

Zitat von »Saiya@HPI«

-Joker- hat meinen Post nicht korrekt gelesen: "main.cpp" :)

... was aber nicht weiter schlimm ist, weil wenn man in meinem Post main.c durch main.cpp ersetzt das geschriebene trotzdem stimmt. Auch wenn das Problem hier ein anderes war ;)
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 10:05

Aber, aber, aber, ... ;D Visual Studio 2005!

...

Hab ich da überhaupt Einfluss auf das Zusammenstellen der zu verlinkenden Dateien? Ich gehe immer davon aus, dass alle, die zum Projekt gehören, korrekt verlinkt werden.

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

grover

Senior Member

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 12:43

Ja hast Du. Rechte Maustaste auf die Datei, Eigenschaften und dann in den Optionen Exclude from Build -> Yes/No (Hab nur die englische. Im deutschen halt die entsprechende Übersetzung.)

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 18:38

hi

gibts nen Plug-In für Eclipse um in der Entwicklungsumgebung C-Code zu compilieren usw...?

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 18:53

zum compilieren kannst du einen c-compiler nehmen.
z.B. den von Windows.
für eclipse gibt's das cdt (für's syntax highlighten usw), aber du brauchst trotzdem einen compiler.
du musst ja auch java installieren, bevor du eclipse zum java programmieren verwenden kannst
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 21:09

bevor du dir c/c++ mit eclipse gibst guck dir mal lieber anjuta an.

Re: C++ - Problem mit dem Linken

Mittwoch, 15. August 2007, 23:27

Das war bisher meine Wahl:

C/C++ und Allegro -> Visual Studio
Qt und MinGW -> Eclipse mit CDT und der Qt-Integration :)

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.