Pergunta

Eu usei o GCC para compilar alguns arquivos de origem fortran em *.lib e *.dll na plataforma Windows, usando a versão mais recente de Mingw . O GCC usado é a versão 3. O resultado da saída é arpack_win32.dll, blas_win32.dll e lapack_win32.dll.

Eu então quero compilar sssimp.f contra o arpack_win32.dll, blas_win32.dll e lapack_win32.dll usando Intel Visual Fortran Compiler for Windows, Porque sssimp.f usa essas DLLs. Mas eu tive a impressão ( do fórum de suporte da Intel) que isso é não possível.

Minha impressão está correta? Ou é que, desde que eu possa produzir as LIBs e DLLs subjacentes (independentemente de qual compilador e quantos anos ele tem), posso usá -las como minhas libs e DLLs base, e posso vincular -se a eles de qualquer, moderno ou Velho, compilador?

Foi útil?

Solução

O G77 usa um ABI diferente da fertilização in vitro, sim. Portanto, a menos que a fertilização in vitro tenha alguma opção de compatibilidade G77/F2C, não vai funcionar.

A solução mais fácil para você provavelmente é usar a fertilização in vitro para compilar as bibliotecas também.

Outras dicas

Como já foi apontado, é provável que os compiladores de mistura com diferentes convenções de chamadas sejam muito difíceis.

Essa resposta no fórum Intel apontou uma versão de Arpack traduzida para fortran 90 - http://people.sc.fsu.edu/~burkardt/f_src/arpack/arpack.html - Você pode usar isso? Veja também http://people.sc.fsu.edu/~burkardt/f_src/lapack/lapack.html e http://people.sc.fsu.edu/~burkardt/f_src/blas1_s/blas1_s.html

Ou a Intel Visual Fortran deve ser capaz de compilar o Fortran 77 usando opções de compilador adequado. Que construções de linguagem está rejeitando?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top