Fortran g95 link til bibliotek fejler
HejJeg 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?