AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C-Programmierung "error: NULL undeclared"
Thema durchsuchen
Ansicht
Themen-Optionen

C-Programmierung "error: NULL undeclared"

Ein Thema von icqgoofy · begonnen am 31. Dez 2006 · letzter Beitrag vom 1. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
icqgoofy
(Gast)

n/a Beiträge
 
#1

C-Programmierung "error: NULL undeclared"

  Alt 31. Dez 2006, 17:05
Hallo zusammen,
ich programmiere zur Zeit einen Roboter als
Facharbeit für Physik\Informatik.
Als Bausatz habe ich die ASURO Platine der
Firma Arexx.

Beim Programmieren tritt jetzt folgendes Problem auf:
Es gibt in der Bilbliothek <time.h> die Fkt difftime,
die mir die Differenzzeit zweier Stellen ausgibt.
Als Quelltext sieht das wie folgt aus:
Code:
....
#include "time.h"
...
time_t startzeit,endzeit;
double diff;

startzeit=time(NULL);
diff=0;
while(diff != 5)
{
  diff=difftime(endzeit,startzeit);
  endzeit=time(NULL)
}
Eingebunden oben ist nur die Header-Datei "asuro.h".
Nun kommt der Fehler:
Code:
..error: `NULL` undeclared (first use in this function)
..error: (Each undeclared identifier is reported only once
..error: for each function it appears in.)
Soweit so gut, nun habe ich ein paar Biblitoheken durchsucht
und habe dann die Header "stdlib.h" und "stddef.h" hinzugefügt,
nun kommt folgender Fehler:
Code:
[Pfad]..: undefined reference to `time`
........: undefined reference to `difftime`

Kann mir da jemand helfen?
  Mit Zitat antworten Zitat
pitti platsch

Registriert seit: 26. Dez 2006
Ort: Berlin
25 Beiträge
 
Delphi 2005 Professional
 
#2

Re: C-Programmierung "error: NULL undeclared"

  Alt 31. Dez 2006, 17:13
es muss
Code:
#include <time.h>
heißen. mit < und > statt " (genauso bei allen Standard-Bibliotheksheadern. Also auch stdlib,...)
Mit
Code:
#include "datei.h"
lädts du nur eine Datei (datei.h) aus dem Ordner, wo sich dein Projekt befindet. Mich wundert, dass der Compiler das nicht angemeckert hat.

pitti
Sollte geh'n...
  Mit Zitat antworten Zitat
icqgoofy
(Gast)

n/a Beiträge
 
#3

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 12:04
daran liegt es nicht.
Als "Schreibprogramm" benutze ich Programmers Notepad 2.
Ich habe das jetzt mal mit <..> versucht, treten aber
immer noch diesselben Fehler auf!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 12:09
Gibt es vielleicht eine entsprechende Headerfiel im Verzeichnis, welche dann anstatt der stnadardmäßigrn includiert wird?
ist stdlib.h eingebunden (da wird NULL m.W. deklariert)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 12:22
Ich glaube NULL ist entweder in stdlib.h oder stdio.h deklariert. Wenn das nich hilft, dann versuche es mit 0, oder (void *)0.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Schrammel

Registriert seit: 21. Jan 2006
Ort: Koblenz
29 Beiträge
 
Delphi 2006 Architect
 
#6

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 12:26
Guten Morgen an Neujahr und allen ein frohes neues Jahr,

ich habe Deinen Quelltext mal durch die C - Personality von BDS 2006 durchlaufen lassen und kann Dir nur mitteilen, dass folgender Code-Ausschnitt sich sauber compilieren lässt:
Code:

#include <time.h>

void TestIt()
   {
   time_t startzeit, endzeit;
   double diff;

   startzeit=time(NULL);
   diff=0;
   while(diff != 5)
      {
      diff=difftime(endzeit,startzeit);
      endzeit=time(NULL);
      }
   }
Ich musste Deinen Code-Abschnitt in eine Prozedur einpacken, ansonsten habe ich nicht viel verändert.

Verändere mal die Reihenfolge der Include-Dateien. Wenn die angesprochene azuro.h (oder so ähnlich) nicht sauber ist, dann kann es passieren, dass einige andere Header-Dateien nicht sauber eingebunden werden.

Gruß

Stefan Schramm
  Mit Zitat antworten Zitat
Schrammel

Registriert seit: 21. Jan 2006
Ort: Koblenz
29 Beiträge
 
Delphi 2006 Architect
 
#7

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 12:37
@ sniper_w:
Das kommt darauf an, welche Implememtierung (bzw. welche Version des Standards) man nutzt. Borland setzt den Industrie-Standard dahingehend um, dass sie NULL in der Datei _null.h definieren (in Abhängigkeit davon, ob _cplusplus definiert ist oder nicht.

Gruss

Stefan Schramm
  Mit Zitat antworten Zitat
icqgoofy
(Gast)

n/a Beiträge
 
#8

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 13:09
Also ich hab jetzt mal alles andere aus meiner
Datei gelöscht, sodass nur noch besagter Teil der
Funktion dort steht, ich habe den Quelltext von
Stefan Schrammel kopiert und engefügt, sodass der gesamte Quelltext
nun wie folgt aussieht:

Code:
#include <stdio.h>
#include <stdlib.h>                     
#include <time.h>                  

int main(void)                        
{
   time_t startzeit, endzeit;
   double diff;

   startzeit=time(NULL);
   diff=0;
   while(diff != 5)
      { 
      diff=difftime(endzeit,startzeit);
      endzeit=time(NULL);
      } 
   return 0;
}

Die komplette Fehlermeldung ist folgende:

Code:
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:7: warning: `endzeit' might be used uninitialized in this function
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o  --output test.elf -Wl,-Map=test.map,--cref -lm
test.o(.text+0xc): In function `main':
D:\Facharbeit\Dateien\Beispielprogramm\ASURO_src\Unser Programm (1)/test.c:10: undefined reference to `time'
test.o(.text+0x30):D:\Facharbeit\Dateien\Beispielprogramm\ASURO_src\Unser Programm (1)/test.c:14: undefined reference to `difftime'
test.o(.text+0x3a):D:\Facharbeit\Dateien\Beispielprogramm\ASURO_src\Unser Programm (1)/test.c:15: undefined reference to `time'
make: *** [test.elf] Error 1

> Process Exit Code: 2

Kann das evtl an meinem Programm Programmer Notepad 2 liegen?
  Mit Zitat antworten Zitat
pitti platsch

Registriert seit: 26. Dez 2006
Ort: Berlin
25 Beiträge
 
Delphi 2005 Professional
 
#9

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 14:02
Ich glaube nicht, dass es am Programmer Notepad liegt. Guck doch mal in der Datei time.h nach, ob da überhaupt die time-Funktion definiert ist. Wenn dein Compiler für nen Roboter kompiliert, kann es ja sein, dass die ein paar Funktionen gar nicht dabei haben um Platz zu sparen.

pitti
Sollte geh'n...
  Mit Zitat antworten Zitat
icqgoofy
(Gast)

n/a Beiträge
 
#10

Re: C-Programmierung "error: NULL undeclared"

  Alt 1. Jan 2007, 16:16
Die Bib time.h habe ich von extern hinzugefügt,
die gehört net zur Standardbiblio von Asuro.
Zuerst hat er die Bibliotheken ja auch nicht erkannt,
ich habe sie dann allerdings ein wenig bearbeitet,
und nun gehen sie.
(bearbeitet meint nicht dass ich groß was verändert habe,
sondern ich habe zwei kleine Fehler verbessert, die aber
unabhängig von der time() Fkt sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:10 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