Avatar billede madm Nybegynder
19. maj 2010 - 09:55 Der er 1 løsning

Fortran g95 link til bibliotek fejler

Hej
Jeg har fra mit studium købt biblioteket: "Numerical Recipes" til F77. Dette har jeg kompileret med g95-kompileren og lagt i et arkiv. (libnumrcp.a) Jeg har alle objekt-filerne i en anden mappe.

Jeg bruger nu g95-kompileren og jeg kører Windows 7.

Så har jeg skrevet et testprogram i f90:

program Link
! To test if numrcp-library works.
! Numrec is a f77-compiled library and this program is written in F90.
implicit none
integer :: loebenummer=1
real :: ran1
print *,"a number=",loebenummer
print *,"a random number=",ran1(3847)
end program Link

Hvis jeg kompilerer og linker direkte til ran1.o filen, dvs. jeg skriver: "g95 -o demo.exe c:\g95\lib\num_rec\ran1.o Link.f90", virker det hele som forventet.

MEN, hvis jeg vil bruge mit bibliotek og kompilerer sådan her: "g95 -o demo.exe -lnumrcp Link.f90" får jeg fejlen: "C:\Users\rghmm\AppData\Local\Temp/ccfCgGCs.o:Link.f90:(.text+0xe7): undefined reference to 'ran1_' "

Jeg har fejlsøgt ved at skrive andre biblioteksnavne (f.eks. libnumrpc.a), men så melder kompileren, at den ikke kan finde biblioteket, så den må jo altså kunne se numrcp. (Biblioteket ligger også i standardbiblioteket, og systemvariablen g95_library_path indeholder også den rette sti.) Endelig har jeg forsøgt at kompilere med ordren: "g95 -o demo.exe -Lc:\g95\lib\ -lnumrcp Link.f90" - også uden held.

Jeg har også listet indholdet af numrcp med kommandoen "ar -t libnumrcp.a" og der ligger ran1.o ganske fint.

Er der nogen, der kan hjælpe?
Avatar billede madm Nybegynder
19. maj 2010 - 10:32 #1
Bare glem det. Man skal bare skrive biblioteksnavnet til sidst i sætningen! :-)

Altså: g95 -o demo.exe Link.f90 -lnumrcp

(Hvis andre løber ind i problemet.)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester