5.2.20
08/10/20

Diff for AlgoDat_LU5 between 3 and 4

+ Algorithmen und Datenstrukturen 
++ Übung zum Kapitel "Erstellen eines Programms in C" 
** W. Tasin, M.Sc. **

 _
 
+++ Theoretische Fragen

* Aus einer Quellcodedatei soll eine ausführbare Binärdatei erstellt werden. 
 * Welche Schritte sind nötig? 
 * Welche Voraussetzung muss die Quellcodedatei erfüllen?

>>   **Übersetzen/Compile** _
   **Binden/Link**

>>   **Die Quelldatei muss eine Funktion mit dem Namen {{main}} implementieren.**

  
 _

* Die **ANSI-C 89/90**-Quellcodedatei {{ausgabe.c}} soll unter Windows **nur übersetzt** werden. Alle Warnungen (inkl. strikte ISO-C Behandlung) sollen ausgegeben werden. 
 * Wie lautet üblicherweise die Erweiterung im Dateinamen des resultierenden Objektmoduls?
 * Wie lautet die Anweisung in der Eingabeaufforderung, um das zu realisieren?
 * Wann muss in der Quellcodedatei die Direktive {{#include <stdio.h>}} vorkommen? Nennen Sie einen Grund.

<code type="text">.obj
</code>

<code type="text">gcc -c -Wall -pedantic -ansi -o ausgabe.obj ausgabe.c
</code>

Die>> Die Direktive ist nötig, wenn eine Standard-C Ein-/Ausgabefunktion verwendet wird.

 _

* Die **ANSI-C 89/90**-Quellcodedatei {{main.c}} soll unter Linux zu einer ausführbaren Datei umgewandelt werden. _
Alle Warnungen (inkl. strikte ISO-C Behandlung) sollen ausgegeben werden. _
Das Objektmodul soll {{main.o}} heißen. Die ausführbare Datei soll {{outputter}} heißen. 
 * Wie lauten die Anweisungen in der Eingabeaufforderung, um das zu realisieren?

<code type="text">gcc -c -Wall -pedantic -ansi -o main.o main.c
gcc -o outputter main.o
</code>

 _

* Eine **ANSI-C 89/90**-Linux-Applikation soll aus 2 Quellcodedateien {{filter.c}} und {{myutils.c}} erstellt werden. _
Alle Warnungen (inkl. strikte ISO-C Behandlung) sollen ausgegeben werden. _
Die Objektmodule sollen {{filter.o}} und {{myutils.o}} heißen. Die ausführbare Datei soll {{filter}} heißen. 
 * Wie lauten die Anweisungen in der Eingabeaufforderung, um das zu realisieren?
 * Nun wird die Quelldatei {{filter.c}} verändert. Welche Anweisungen sind zur Neuerstellung der Applikation nötig?

<code type="text">gcc -c -Wall -pedantic -ansi -o filter.o filter.c
gcc -Wall -c -pedantic -ansi -o myutils.o myutils.c
gcc -o filter filter.o myutils.o
</code>

Bei nachträglicher Änderung der {{filter.c}}
<code type="text">gcc -Wall -pedantic -ansi -c -o filter.o filter.c
gcc -o filter filter.o myutils.o
</code>

 _



----
++ Links
((AlgoDat_Uebungen|Uebungen Algorithmen und Datenstrukturen))
((AlgoDat_Unterlagen|Unterlagen Algorithmen und Datenstrukturen))
((AlgoDat_Praktikum|Praktikum Algorithmen und Datenstrukturen))
((Wiki/Home|Zur Hauptseite))