Neueinstieg in "Eclipse" - C Projekt

Gast #5502268
Lesenswert?

Hallo Freunde der Programmierung,

Wollte gerade mal ein bisschen was mit "Eclipse" machen und siehe da, 
schon das erste Problem.

Wenn ich eine externe Headerdatei einbinden möchte, erkennt er zwar die 
Struktur die dort enthalten ist aber nicht die Funktionen.
Woran kann das liegen?
1
#include <stdio.h>
2
#include "C:\Users\Frank\Dropbox\C - Programmieren\C-Librarys\trunk\Kommando Interpreter\cmd.h"
3

4
void *cmdOK ( void *x , void *y )
5
{
6
  printf("CMD_OK\r\n");
7

8
  return (char*)0;
9
}
10

11

12
int main ()
13
{
14
  cmd_struct cmd[] =
15
  {
16
    {"Relais setzen"     ,   "-KS"  ,   cmdOK   },
17
    {"Relais löschen"    ,   "-KU"  ,  cmdOK  },
18
    {"Uhrzeit stellen"    ,  "-US"  ,  cmdOK  },
19
    {"Spannung lesen"    ,  "-UL"  ,  cmdOK  },
20
    {"Strom lesen"      ,  "-IL"  ,  cmdOK  },
21
    {"Leistung lesen"    ,  "-LL"  ,  cmdOK  },
22
    {"Fehler lesen"      ,  "-FL"  ,  cmdOK  },
23
  };
24

25
  srchCmd( NULL , NULL ); // Die Funktion kennt er wohl nicht.. Obwohl sie in der .c und .h vorhanden ist.
26

27
    return 0;
28
}
Gast #5502275
Lesenswert?

Das ist der Output
1
11:49:15 **** Inkrementelles Erstellen von Konfiguration Debug für Projekt Kommando Interpreter ****
2
Info: Internal Builder is used for build
3
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "..\\main.c" 
4
..\main.c: In Funktion »main«:
5
..\main.c:21:13: Warnung: Variable »cmd« wird nicht verwendet [-Wunused-variable]
6
gcc -o "Kommando Interpreter.exe" main.o 
7
main.o: In function `main':
8
C:\Users\Jan Homann\Desktop\Kommando Interpreter\Debug/../main.c:32: undefined reference to `srchCmd'
9
collect2: ld gab 1 als Ende-Status zurück
10

11
11:49:15 Build Failed. 1 errors, 1 warnings. (took 262ms)
Gast #5502320
Lesenswert?

Wenn du das mit Anführungszeichen machst, brauchst du die headerdatei 
einfach nur in das Projekt kopieren (z.B. in den Ordner iclude, sofern 
angelegt). Wenn das immer noch nicht reichen sollten, im Projektexplorer 
mal rechte Maustaste auf dem Projet und "Refresh" drücken.
#5502404
Lesenswert?

Frank H. schrieb:
> main.o: In function `main':
> C:\Users\Jan Homann\Desktop\Kommando Interpreter\Debug/../main.c:32:
> undefined reference to `srchCmd'
> collect2: ld gab 1 als Ende-Status zurück

Das ist ein Linker Fehler. Du hast vergessen ein .o oder eine Lib mit 
einzulinken.

Kann auch sein das ein oder mehrere .c File(s) im Projekt fehlen.
Gast #5502445
Lesenswert?

Zu den meisten *.h Dateien gehört auch eine gleichnahmige *.c Datei 
(Quelltext) oder eine *.o Datei (bereits Compiliert). Diese musst du zu 
deiner Projektkonfiguration hinzufügen.

Die *.h Datei enthält nur die Namen der Funktionen, die von einer *.c 
oder *.o Datei bereitgestellt wird. Der Linker fügt alle Fragmente 
zusammen und meldet die oben gezeigte Fehlermeldung, wenn die Funktion 
fehlt. Das heißt, es fehlt eine *.c oder *.o Datei.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren