简体   繁体   中英

Linking after using f2c

I used f2c to translate a huge Fortran subroutine into C. The header says the following:

/* fourier.f -- translated by f2c (version 20090411).
   You must link the resulting object file with libf2c:
    on Microsoft Windows system, link with libf2c.lib;
    on Linux or Unix systems, link with .../path/to/libf2c.a -lm
    or, if you install libf2c.a in a standard place, with -lf2c -lm
    -- in that order, at the end of the command line, as in
        cc *.o -lf2c -lm
    Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,

        http://www.netlib.org/f2c/libf2c.zip
*/

I am using ubuntu 10.04. How can I link the object file with libf2c?

您将必须安装libf2c2-dev软件包-但由于f2c软件包已经依赖于它,因此您可能需要的是将-lf2c添加到Makefile中。

Are you compiling the resulting C file with gcc? Then add "-lf2c -lm" to the gcc compile command.

Why not compile with a Fortran compiler, such as gfortran? It's easily available for Ubuntu.

By passing -lf2c -lm to the line which will create the executable from the objects. Which compiler are you using on Ubuntu? GCC?

gcc -c fourier.c -lf2c -lm

Could be as simple as that.

Well - no direct answer to your linking problems, but:

Since you're working with Linux: Why don't you compile you fortran code as is and link it directly with the C-code? GCC can do that. Converting the code is of course doable but it is by no way required.

Nils

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM