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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.