fizika-II.stopnja Seznam forumov
Registriraj seIščiPogosta vprašanjaSeznam članovSkupine uporabnikovPrijava



Odgovori na to temo Stran 1 od 1
Prevajanje knjižnice Numerical Recipes na Ubuntu 10.04
Avtor Sporočilo
Odgovori s citatom
Prispevek Prevajanje knjižnice Numerical Recipes na Ubuntu 10.04 
Ker verjamem, da vas bo veliko imelo težave s prevajanjem knjižnice, bom tukaj opisal postopek s katerim mi je uspelo prevesti izvorno kodo knjižnice, ki je objavljena na spletni strani predmeta. Še vedno imam težave pri linkanju knjižnice, saj linker knjižnico najde, vendar linkanje vrne napako "undefined reference: ...". Vsakršni predlogi in popravki dobrodošli.

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/test
postane
Koda:
TEST=test
.

V knjižnici je definirana funkcija
Koda:
 float fmin
ki je definirana tudi v standardni knjižnici. Problem rešimo tako, da funkcijo preimenujemo (npr. nrfmin) in dosledno prepišemo vse klice funkcije v celotni knjižnici ( v mapi recipes datoteke fmin.c, broydn.c in newt.c ter v mapi include datoteka nr.h).

V 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

Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:
Odgovori na to temo Stran 1 od 1
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu