2017-08-08 1 views
1

Ich bin neu bei Ubuntu. ich versuche, ein Programm zu kompilieren, das bei http://www-tcad.stanford.edu/tcad/programs/oldftpable.html gegeben wird Aber es gibt Fehler: Nicht definierte Referenzundefined Bezug auf `geten_ '

Was vermisse ich?

subroutine opnfl(lu,cname,opnerr,ierr,status,form,exclus,appnd) 
     logical opnerr,form,exclus,appnd 
     integer lu,ierr,status 
     character*(*) cname 
     logical vaxdev 
     logical geten 
     character*80 fname 
     character*12 aform 
     character*8 astat 
     character*13 aexcl 
     character*3 old 
     character*3 new 
     character*7 unknow 
     character*7 scrat 
     character*9 formtd 
     character*11 unform 
     character*9 exclsv 
     character*12 nonexc 
     data old/'old'/
     data new/'new'/
     data unknow/'unknown'/
     data scrat/'scratch'/
     data formtd/'formatted'/
     data unform/'unformatted'/
     data exclsv/'exclusive'/
     data nonexc/'nonexclusive'/
     opnerr=.false. 
     ierr=0 
     call csetv(fname, 80, ' ') 
     if(.not.(.not.geten(cname,fname)))goto 23000 
     call cpack(cname,fname, len(cname)) 
23000 continue 
     if(.not.(status .eq. 1))goto 23002 
11 continue 
     opnerr=.true. 
     return 
     end 

Ich habe den Fehler unten beigefügt.

:~/Downloads/Release/src/setup$ make install 
loading... 
opnfl-L.o: In function `opnfl_': 
opnfl-L.f:(.text+0x77): undefined reference to `geten_' 
collect2: error: ld returned 1 exit status 
Makefile:39: recipe for target 'install' failed 
make: *** [install] Error 1 

Antwort

0

Der PISCES-Code ist ziemlich alt. Abgesehen von der Behebung des Build-Systems und der Linker-Fehler können Probleme mit Syntaxfehlern im Code auftreten, die auf einem modernen Linux-System nicht funktionieren würden.

Wenn Sie FISCHE kompilieren mit einem neueren Build-System finden Sie in der Gabel ich hier erstellt: https://github.com/devsim/pisces

Beachten Sie, dass es nur mit ein paar Testfällen getestet wurde. Wenn Sie Probleme mit der Anwendung haben, reichen Sie bitte ein Ticket ein.