AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C-Header -die große Verzweifelung...-
Thema durchsuchen
Ansicht
Themen-Optionen

C-Header -die große Verzweifelung...-

Ein Thema von Elko · begonnen am 18. Sep 2008 · letzter Beitrag vom 19. Sep 2008
Antwort Antwort
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#1

C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 20:00
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:
//funktionen.c

#include "funktionenHEAD.h"
#include <REGAN21.H>         /* Register des AN21xx   */
#include <EZREGS.H>            /* Externe Register des AN21xx */


unsigned char myfunc(void){
   return 0xAA;
}
Hat jemand einen Rat? Biiiiiiiiiiitteeee :confused:

Viele Grüße,
Stefan
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 20:06
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?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 20:08
Zitat von Elko:
Da in dem letzten Threat
Hier mal der Link zum erwähnten Thread.
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#4

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 20:14
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?
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 20:43
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:
#ifndef MainH
#define MainH
//Deklarationen
#endif
Damit kann ich die Sachen auch mehrmals inkludieren, ohne dass es Fehler gibt

Grüße, Messie
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#6

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 21:34
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 von messie:
Und zuletzt: hat Deine Headerdatei die Struktur
Code:
#ifndef MainH
#define MainH
//Deklarationen
#endif
Damit kann ich die Sachen auch mehrmals inkludieren, ohne dass es Fehler gibt
eingehalten, aber es hilft anscheinend auch nix

Grüße,
Stefan
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#7

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 21:53
Also in der Headerdatei <REAGAN21.H> werden Variablen nach folgendem Schema deklariert:
Code:
xdata unsigned char OUT7BUF[64]   _at_   0x7B40;
xdata unsigned char IN7BUF[64]   _at_   0x7B80;
xdata unsigned char OUT6BUF[64]   _at_   0x7BC0;
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"?
Falls ja, hat jemand eine Idee, das zu umgehen?

Grüße,
Elko
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#8

Re: C-Header -die große Verzweifelung...-

  Alt 18. Sep 2008, 22:53
Hat niemand eine Idee?
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#9

Re: C-Header -die große Verzweifelung...-

  Alt 19. Sep 2008, 17:05
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 , aber trotzdem bin ich jetzt einfach froh, dass es jetzt endlich klappt
cheers!

Gruß,
Stefan
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

Re: C-Header -die große Verzweifelung...-

  Alt 19. Sep 2008, 19:29
Zitat von Elko:
Also: erst mal Danke für die Antworten von euch!
Dabei verstehe ich zwar nicht, was ich vorher falsch gemacht habe , aber trotzdem bin ich jetzt einfach froh, dass es jetzt endlich klappt
Das ging mir damals auch so. Delphi ist da einfach etwas großzügiger bei der Verarbeitung der Deklarationen

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz