diff --git a/GNUCompilerCollection%2FLinker-Fehler_bei_Fließkommazahlen.mw b/GNUCompilerCollection%2FLinker-Fehler_bei_Fließkommazahlen.mw new file mode 100644 index 00000000..c467fb40 --- /dev/null +++ b/GNUCompilerCollection%2FLinker-Fehler_bei_Fließkommazahlen.mw @@ -0,0 +1,34 @@ +Es handelt sich hier um einen Spezialfall beim GCC, andere Compiler verlangen dies nicht oder anders. + +Das Bsp.: + + #include + #include + /* + 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; + } + + +lässt sich nicht durch den einfachen Aufruf +:gcc anlagedauer.c +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 +:gcc -lm anlagedauer.c +damit die Quelle fehlerfrei baut.