xNeTworKx: C /Probleme beim kompilieren

Hallo,
Ich hab heute erst mit C angefangen und noch eine kleine Frage, und zwar ich hab da dieses Hello World

#include <stdio.h>

int main() {
printf("Hello, World!\n");
return 0;
}

Wenn ich jetzt von der Eingabeaufforderung mit dem free Borland C++ Compiler das FIle versuche zu kompilieren, kommt folgende Meldung:
Error ...: Unable to open include file 'stdio.h'
Warning: Call to function 'printf' with no prototype in function main

Hmmm ? Warum kann er stdio.h nicht öffnen ? Ich dachte zuerst vielleicht wegem dem Pfad und habe hallo.c nach Include verschoben, in dem sich die Datei stdio.h befindet, aber die selben Meldungen ?

Woran liegt das, und warum kommt eine Warning, da das Bsp. doch aus dem Buch ist ?

  1. Hallo,

    Hmmm ? Warum kann er stdio.h nicht öffnen ? Ich dachte zuerst vielleicht wegem dem Pfad und habe hallo.c nach Include verschoben, in dem sich die Datei stdio.h befindet, aber die selben Meldungen ?

    Mach das bitte nicht, das Include-Verzeichnis sollte keine Spielwiese sein.

    Woran liegt das, und warum kommt eine Warning, da das Bsp. doch aus dem Buch ist ?

    Also zuerst einmal, findet der Compiler das Include-Verzeichnis nicht.  Das ist jenes VErzeichnis, aus dem die Dateien welche mit
    #include <irgendwas.h>
    eingebunden werden, d.h der Dateiname steht zwischen spitzen Klammern.
    Steht der Dateiname zwischen Anführungszeichen
    #include "wasanderes.h"
    so sucht der Compiler im aktuellen Verzeichnis (oder auch zusätzlich in den Include-Verzeichnissen, je nach Compiler)

    Ich kenne den aktuellen Borland-Compiler zwar nicht, aber bei den älteren Compilern war es möglich, entweder mit Kommandozeilenoptionen
    BCC -IC:\wo\auch\immer\include
    oder über eine Konfigurationsdatei (irgendwas mit .CFG) anzugeben, wo sich die Includeverzeichnisse befinden.
    Da sollte AFAIK auch für die Verzeichnisse, in denen die Bibliotheken liegen, eine entsprechende Option sein.

    Es könnte auch sein, daß Du die Pfade mittels Umgebungsvariablen angeben kannst.

    Näheres kann ich auch nicht sagen, allerdings sollte bei dem Compiler doch zumindest eine grundlegende Dokumentation vorhanden sein. In der müßte so etwas schon erklärt werden.

    Grüße
      Klaus

    1. Nochmals Hallo,

      Näheres kann ich auch nicht sagen, allerdings sollte bei dem Compiler doch zumindest eine grundlegende Dokumentation vorhanden sein. In der müßte so etwas schon erklärt werden.

      Vielleicht hilft ja auch http://community.borland.com/article/0,1410,20997,00.html
      weiter;-)

      Grüße
         Klaus

      1. Hi,
        als ich nach dem .cfg gesucht habe, hab ich ein .txt File mit infos gefunden, wo drauf steht, das ich eine .cfg Datei erst anlegen muss, das werd ich mal probieren, und ich glaub dann sollte es funktionieren, danke

        1. Hi nochmal,
          das hat jetzt geklappt, nur eine kleine Frage hätt ich da noch, und zwar, der Compiler gibt das .obj und .exe File in den Ordner /bin/, was ich aber ein bißchen unübersichtlich finde, weil ja dort die ganzen bcc32.exe Files usw sind.
          Das die .obj und .exe Datei in dem Ordner, wo das .c File ist, erscheint ist nicht zufällig irgendwie möglich, oder ?

          1. Hallo,

            das hat jetzt geklappt, nur eine kleine Frage hätt ich da noch, und zwar, der Compiler gibt das .obj und .exe File in den Ordner /bin/, was ich aber ein bißchen unübersichtlich finde, weil ja dort die ganzen bcc32.exe Files usw sind.
            Das die .obj und .exe Datei in dem Ordner, wo das .c File ist, erscheint ist nicht zufällig irgendwie möglich, oder ?

            Ein bißchen lesen wird Dir auf Dauer nicht erspart bleiben;-)
            In dem Artikel, dessen Link ich gepostet habe, findest Du sämtliche Compileroptionen, darunter auch den für Object-Filename und Executable-Filename, bzw. Output Filedirectory. Wozu, glaubst Du, dienen  diese Angaben?

            Diese Angaben findest Du übrigens auch ohne Web, indem Du einfach nur bcc32 ohne weitere Arugmente eingibst.

            Grüße
              Klaus

            1. Hallo,
              tja meine Lesefaulheit :-) auf jeden Fall hats geklappt, danke :-)