[FUG-BR] tentando entender o compilar gcc/gfortran

Eduardo Lemos de Sa eduardo.lemosdesa em gmail.com
Terça Novembro 30 15:12:14 BRST 2010


Caríssimos

2010/11/30 Zhu Sha Zang <zhushazang em yahoo.com.br>

> Em 29-11-2010 17:02, Eduardo Lemos de Sa escreveu:
> > Caríssimos
> >
> > Estou esbarrando em um problema que tem me complicado a vida: tenho um
> > pequeno pacote gráfico (abre o output de um cálculo de mecânica-quântica)
> > que é composto por dois arquivos (nboview.f e draw.c). Apesar de simples,
> > ele vem com um makefile:
> >
> >
> > # Compile (not link) the C source files
> > gcc -c -D_XWINDOWS draw.c
> >
> > # Compile the FORTRAN source file, and link with the C object files
> > gfortran nboview.f draw.o -L/usr/X11R6/lib -lX11 -o nboview
> >
> > # Delete the intermediate object files
> > rm draw.o
> >
> >
> > que simplesmente não funciona (gmake ou make -f makefile produz a
> mensagem
> > "maknbov:3: ***missing separator. Stop").
> >
> > Como ele é muito simples e faz pouca coisa, resolvi compilar na força
> bruta:
> >
> > gcc -c draw.c
> > gfortran -f nboview.f  (aqui eu assumi que o gcc compila programas em c e
> o
> > gfortran em fortran) e nenhuma mensagem de erro ou warning aparece. Se eu
> > insiro a -D_XWINDOWS, aparece um monte de mensagens dizendo que várias
> > variáveis são desconhecidas ou não foram declaradas (logo ele precisa das
> > bibliotecas do sistema).
> >
> > Na hora da linkagem, eu faço:
> >
> > gfortran -L/usr/X11R6/lib -lX11 -o nboview.x nboview.o draw.o
> >
> > e eu obtenho:
> >
> > nboview.o: In function `draw_':
> > nboview.f:(.text+0x1fea3): undefined reference to `plots_'
> > nboview.f:(.text+0x201c0): undefined reference to `plot_'
> > nboview.f:(.text+0x201e0): undefined reference to `plot_'
> > nboview.f:(.text+0x204e6): undefined reference to `plot_'
> > nboview.f:(.text+0x20506): undefined reference to `plot_'
> > nboview.f:(.text+0x2089a): undefined reference to `plot_'
> > nboview.o:nboview.f:(.text+0x295f8): more undefined references to `plot_'
> > follow
> > collect2: ld returned 1 exit status
> >
> > Vasculhei pelo google onde eu posso encontrar esta função "plot_" (em
> qual
> > lib) mas não encontrei a resposta.
> >
> > Por favor, algum comentário sobre o que eu possa estar fazendo errado ou
> > onde eu possa encontrar uma determinada função em uma biblioteca? E quais
> > são as bibliotecas que o X11 realmente usa (há bibliotecas libX11 no
> > /usr/local/lib e no /usr/X11R6/lib)?
> >
> > Obrigado pela atenção
> >
> > Edu
> >
> Qual o programa que está tentando compilar? Pode disponibilizar o source
> ou o nome para analizar a documentação de forma a lhe ajudar melhor?
>
> Talvez a lib seja a plotlib. TALVEZ.
>
> Tente instalar o gnuplot, algo pode ser instalado junto que te auxilie.
> (Solução Lusitana).
>
> Ou se afundar nos requerimentos do programa.
>
> Estou com um problema semelhante, mas para o meu azar, o programa é
> pago, e só compila com versões fechadas de compiladores fortran.
>
> Att...
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
>
Infelizmente o código é pago (o valor não é absurdo, US$ 100,00, porém por
respeito ao autor e à ética, eu não posso torna-lo público.

Eu já tenho o gnuplot , qtiplot, labplot e outros aplicativos gráficos
instalados. Agradeço a sugestão do amigo  Zang, porém não acredito que a
solução possa estar aí. O programa deveria compilar com o g77 (ou gfortran),
logo acredito que o problema esteja somente em quais (e como) chamar
bibliotecas gráficas na linkedição (constatei também que o tradicional
/usr/X11R6 é na verdade um link para o /usr/local, ou seja, chamar as
/usr/X11R6/lib é na verdade chamar /usr/local/lib).

Eu também tenho problemas para compilar um programa comercial no FreeBSD:
ele pede que o compilador seja o PGI (que não tem versão para FreeBSD,
rodando somente em linux64) ou compilar com o ifortran (que é gratuito para
linux64, porém não roda em FreeBSD-amd64).

Obrigado e um abraço

Edu


-- 
Eduardo Lemos de Sa
Associated Professor Level 2
Dep. Quimica da Universidade Federal do Paraná
fone: +55(41)3361-3300
fax:   +55(41)3361-3186


Mais detalhes sobre a lista de discussão freebsd