c3d2-wiki/GNUCompilerCollection%2FLin...

35 lines
968 B
Plaintext
Raw Normal View History

Es handelt sich hier um einen Spezialfall beim GCC, andere Compiler verlangen dies nicht oder anders.
Das Bsp.:
<code>
#include <stdio.h>
#include <math.h>
/*
k = k0*(1+z)^n
k/k0 = (1+z)^n
log(k/k0) = log((1+z)^n)
=n*log(1+z)
n=log(k/k0)/og(1+z)
*/
double anlagedauer(double k0, double k, double z){
return log(k/k0)/log(1+z);
}
int main(){
double k0=100, // startkapital
k=110, //endkapital
z=0.01; //zins
printf("Anlagedauer: %lf\n", anlagedauer(k0, k, z) );
getchar();
return 0;
}
</code>
lässt sich nicht durch den einfachen Aufruf
:<code>gcc anlagedauer.c</code>
compilieren, der Linker meldet "Fehler 1", auch die suche nach der ''math.h'' hilft hier nicht weiter, makros zur Steuerung der Header-Dateien sind hier also eine Sackgasse.
stattdessen muss die option ''-lm'' ergänzt werden
:<code>gcc -lm anlagedauer.c</code>
damit die Quelle fehlerfrei baut.