Quelle-Datei kann nicht finden die header-Dateien

Ich habe mir diese links gilt : Diese eine
und Diese
und ein paar andere ähnliche.
Keine der Antworten, die hier gegeben sind Arbeitsmethoden arbeiten.

Ich habe zwei source-Dateien a1.c , a2.c und zwei header-Dateien a1.h und a2.h . Ich möchte die header-Dateien diese Dateien (und a2.c in a1.c da gibt es eine Funktion, die ich brauche, um die Verwendung von a2.c)

Ich habe

#include "a1.h"  
#include "a2.h"

in den source-Dateien der a1.c

Ich bin mit GCC auf Ubuntu. und mit dem Befehl gcc a1.h -o a1.out -lm
und das hat nicht funktioniert.

Habe ich versucht mit

gcc -c -I/Home/Documents/ctests/ a1.c -o a1.out

sowie

gcc -c a1.c -I/Home/Documents/ctests/ -o a1.out

Meine Schreibweisen in Ordnung sind, wie gut (es gibt kaum Platz für Fehler gibt es mit einem Buchstaben, und eine Nummer wie das mit dem Namen sowieso).

Auch, alle Dateien sind im gleichen Ordner.

Ich weiß, das mag eine triviale Frage, aber ich bin stecken geblieben auf diese und wäre für jede Hilfe dankbar. Ich bin relativ neu in der Programmierung und komplett neu für Linux-und Unix-soweit mit der Kommandozeile geht.

Vielen Dank!

  • Wenn alle Dateien im gleichen Ordner, und starten Sie den GCC aus diesem Ordner, gibt es keine Notwendigkeit, verwenden Sie die option -I zu finden a1.hund a2.h.
  • Welche Fehlermeldungen bietet die GCC-Problem?
  • Bekomme ich die gleiche Fehler die ganze Zeit: No such file or directory
  • Hast du cd Sie zu dem Ordner, wo Ihre .h und .c - Dateien befinden?
  • Warum sollte ich nicht zählen .c-Dateien in andere .c-Dateien? Die ganze Idee hinter der Erstellung von verschiedenen Modulen ist, dass Sie sollten nicht zu kompilieren, das gesamte Projekt zu jeder Zeit. Wenn Sie nur ändern a2.c sollten Sie nur neu kompilieren a2.c - und link-die alten, unveränderten a1.o (die sollten nicht übersetzt werden, weil es nicht a2.c) mit der neuen a2.o wie in stardust_ Antwort.
  • ja, ich habe cd in den gleichen Ordner. Ich die cd hatte zu diesem Ordner erstellt und die Dateien von dort aus. Also das ist nicht das problem. @modifiablelvalue: ich habe nicht ganz genau verstehen, was Sie sagten. Ich habe die Absicht eine zu machen .aus Datei am Ende. Ich möchte zur Verwendung von Funktionen gespeichert in a2.c im a1.c und Variablen und Makros definiert in a1.h verwendet werden, die in diesen beiden Funktionen. Aber der compiler nicht erkennen die a1.h Datei überhaupt.

Schreibe einen Kommentar