![]() |
C-Header -die große Verzweifelung...-
Hallöchen!
Da in dem letzten Threat so viel Quelltext stnd, hab ich lieber einen neuen aufgemacht. Ich kriegs einfach nicht hin: Wenn ich in meiner IDE in dem Main.c-File die Headerdatei funktionenHEAD.h includiere, die wiederum von funktionen.c includiert wird, dann kommen folgende Fehlermeldungen: UNRESOLVED EXTERNAL SYMBOL REFERENCE MADE TO UNRESOLVED SYMBOL Füge ich die Dateien zu meinem Projekt hinzu, kommen sogar noch mehr "Warnings": Lauter "MULTIPLE PUBLIC DEFINITIONS" Die Quelltexte:
Code:
//main.c
#include <REGAN21.H> /* Register des AN21xx */ #include <EZREGS.H> /* Externe Register des AN21xx */ #include "funktionenHEAD.h" int main(void){ ... }
Code:
// funktionen.h
unsigned char myfunc(void);
Code:
Hat jemand einen Rat? Biiiiiiiiiiitteeee :eek: :confused:
//funktionen.c
#include "funktionenHEAD.h" #include <REGAN21.H> /* Register des AN21xx */ #include <EZREGS.H> /* Externe Register des AN21xx */ unsigned char myfunc(void){ return 0xAA; } Viele Grüße, Stefan |
Re: C-Header -die große Verzweifelung...-
Also wir haben bei Header Dateien immer eine ifdef XYZ define endif klausel gemacht, um nichts doppelt zu definieren. Aber ich weis nicht, ob das was damit zu tun hat.
Was wird denn eigentlich als "unresolved symbol" gekennzeichnet? |
Re: C-Header -die große Verzweifelung...-
|
Re: C-Header -die große Verzweifelung...-
Stimmt, das mit dem include-guard hatte ich bei diesem Versuch vergessen, aber auch wenn ich ihn einfüge kommen die gleichen Fehlermeldungen. Das
UNRESOLVED EXTERNAL SYMBOL REFERENCE MADE TO UNRESOLVED SYMBOL kommt in Bezug auf die von mir definierten Funktionen und die Meldungen "MULTIPLE PUBLIC DEFINITIONS" kommen in Bezug auf die in <EZRegs.h> definierten Variablen. Ich denke, das Problem liegt darin, dass die VAriablen in der Headerdatei <EZRegs.h> schon definiert werden (hab ich aber nicht selbst gemacht). Was sagt ihr dazu? |
Re: C-Header -die große Verzweifelung...-
Benutzt Du den BCB? Ich hatte mal ein ähnliches Problem. Zur Entwurfszeit konnte ich alle Bezüge finden, beim Linken ging es dann schief. Ich glaube, das lag daran, dass die Dateien nicht in der bpr waren. Für den Linker mussten sie mit "Add to Project" noch in die Projektdatei aufgenommen werden, erst dann lief das Linken.
Nebenbei: der Linker war auch fehlerhaft (Habe BCB6, betraf aber auch spätere Versionen, da muss ilink32.dll getauscht werden). Und zuletzt: hat Deine Headerdatei die Struktur
Code:
Damit kann ich die Sachen auch mehrmals inkludieren, ohne dass es Fehler gibt
#ifndef MainH
#define MainH //Deklarationen #endif Grüße, Messie |
Re: C-Header -die große Verzweifelung...-
Erst mal Danke für die Antwort (zu diesem Thema hab ich ja leider nicht sonderlich viele bekommen :| )
Also ich benutze die IDE von Keil und schreibe damit ein Programm für den AN2131 von Cypress. Ich habe auch diese Form: Zitat:
Grüße, Stefan |
Re: C-Header -die große Verzweifelung...-
Also in der Headerdatei <REAGAN21.H> werden Variablen nach folgendem Schema deklariert:
Code:
Dabei dürfen in Headerdateien doch eigentlich gar keine Variablen deklariert werden, sondern nur definiert werden, oder? Ist das nicht die Ursache für die Meldung des Linkers (nachdem die einzelnen c-Dateien beanstandungslos kompiliert wurden) "MULTIPLE PUBLIC DEFINITIONS"?
xdata unsigned char OUT7BUF[64] _at_ 0x7B40;
xdata unsigned char IN7BUF[64] _at_ 0x7B80; xdata unsigned char OUT6BUF[64] _at_ 0x7BC0; Falls ja, hat jemand eine Idee, das zu umgehen? Grüße, Elko |
Re: C-Header -die große Verzweifelung...-
Hat niemand eine Idee? :glaskugel: :cry:
|
Re: C-Header -die große Verzweifelung...-
Also: erst mal Danke für die Antworten von euch!
Letztendlich hab ich es jetzt so gelöst, dass ich erst mal alle *.c und *.h Dateien zum Projekt hinzugefügt habe und das ganze Zeug mit dem "#include", etc. so belassen habe, wie ich es anfangs hatte. Dabei verstehe ich zwar nicht, was ich vorher falsch gemacht habe :gruebel: , aber trotzdem bin ich jetzt einfach froh, dass es jetzt endlich klappt :thumb: cheers! :cheers: Gruß, Stefan |
Re: C-Header -die große Verzweifelung...-
Zitat:
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz