EDIT:
Ker pišem v C++ sem poskušal v datoteki Makefile zamenjati kompajler gcc z g++, kar reši problem z linkanjem. Da se knjižnica res prevede je potrebno še v datotekah amoeba.c in anneal.c zamenjati #include <math.h> z #include <cmath> in vse klice funkcije abs() s klici funkcije fabs(). Takšna rešitev se uspešno linka z ostalo C++ kodo.
Datoteko nr_ansi_c.tar.gz razširimo nekam na disk in se postavimo v razširjeno mapo. Najprej uredimo datoteko Makefile. Iz vrstic 23, 27, 37 izbrišemo /bin/. Torej
Koda:
TEST=/bin/testKoda:
TEST=testV knjižnici je definirana funkcija
Koda:
float fminV mapi recipes je potrebno popraviti še suženjski makefile. Odpremo datoteko Makefile. Napaka je v 247 vrstici, kjer je naveden napačen naslov datoteke stddef.h. V mojem primeru je delovala vrstica
Koda:
nrutil.o: /usr/include/stdio.h /usr/include/linux/stddef.h /usr/include/stdlib.h
sicer pa bi moral delovati vsak naslov, ki ga izpljune bash ukaz
Koda:
$ locate stddef.h
Sedaj bi moral knjižnico uspešno prevesti ukaz
Koda:
$ sudo make install
V mapi /usr/local/lib bi morala čakati sveže pečena knjižnica librecipes_c.a.
Na žalost funkcija fmin ni edina, ki je podvojena. Takšna je tudi funkcija test, zaradi česar ni mogoče prevesti demo programov priloženih knjižnici. V kolikor funkcije test v programih ne kličemo, knjižnica ne bi smela imeti problemov. http://www.nr.com/forum/showthread.php?t=450&goto=nextnewest