Verlinkung von Datein?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo SgtTarek,
    wie du schon vermutest: Sowas sollte man nicht(!!!) machen...
    include's verwendet man um Teile eines Modules auch ausserhalb "bekannt" zu machen - also - normalerweise das Interface oder Definitionen - nicht Deklarationen.
    Knappe Antwort auf deine Frage: Verlinken tut der Linker - die letzte Stufe beim Bauen einer exe.
    Wie man das macht bzw. einstellt, hängt mehr von deiner IDE als von deinem Compiler ab - letztere machen des alle irgendwie ähnlich. In VC++ würd ich mal vermuten, ists was mit "Ressource hinzufügen" oder ein ähnlich aussagekräftiger ... äh Bezeichner.

    Angenommen wir haben zwei Module - dann sind das im Allgemeinen drei Dateien - guckt dann in etwa so aus:

    C-Quellcode

    1. /* das hier ist main.c */
    2. #include "modul.h"
    3. int main( int argc, char **argv ) {
    4. modulFunktion( 42 );
    5. return 0;
    6. }


    C-Quellcode

    1. /* das hier ist modul.c */
    2. #include <stdio.h>
    3. void modulFunktion( int wert ) {
    4. printf( "Hallo Linker! ... %d\n", wert );
    5. }


    Quellcode

    1. /* und das hier ist modul.h - die wird includiert!*/
    2. void modulFunktion( int wert );


    Compilieren auf der Konsole schaut dann in etwa so aus:
    1) cc -c main.c
    2) cc -c modul.c
    3) lnk main.o modul.o -o proggi.exe

    1 & 2: Compilieren der Module -> hier purzeln Objektfiles (*.o oder *.obj) raus.
    3: Linken - zusammenbinden der Objekte zu ner proggi.exe.
    Genau DAS macht auch deine IDE im Hintergrund - die Frage ist nur: "Wie sag' ichs deiner Entwicklungsumgebung?" - Hab keine Ahnung ...
    Empfehlung: Versuchs mal wirklich auf der Konsole - anfangs etwas unbequemer als nur auf den Button zu drücken - aber nur so wirst rauskriegen, was hier genau gespielt wird und wie's funktioniert ...

    grüße
    Microsoft gives you Windows, UNIX gives you the whole house.