View Single Post
  #1 (permalink)  
Old August 2nd, 2005, 07:52 AM
rony rony is offline
Registered User
 
Join Date: Aug 2005
Location: , , .
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Default linker error while calling fortran from c

hiya,

I have a code which i use to link a fortran file. The fortran file was compiled using g77 compiler and it creates an object file. When I run my C code I find following run time linker error. I am using Dev-C++ 4.9.9.2.

  [Linker error] undefined reference to `_Z4FACTi@4'

  [Linker error] undefined reference to `_Z10PYTHAGORASffPf@12'
  ld returned 1 exit status

I would highly appreciate if any one got any clues to solve the prob.

Thx
Rony.

My C Code is:

#include <stdio.h>
#include <math.h>



extern int __stdcall FACT (int n);
extern void __stdcall PYTHAGORAS (float a, float b, float *c);

main()
{
    float c;
    printf("Factorial of 7 is: %d\n", FACT(7));
    PYTHAGORAS (30, 40, &c);
    printf("Hypotenuse if sides 30, 40 is: %f\n", c);
}

Fortan Code is:
C File FORSUBS.FOR
C
      INTEGER*4 FUNCTION Fact (n)
      INTEGER*4 n
      INTEGER*4 i, amt
      amt = 1
      DO i = 1, n
        amt = amt * i
      END DO
      Fact = amt
      END

      SUBROUTINE Pythagoras (a, b, c)
      REAL*4 a
      REAL*4 b
      REAL*4 c
      c = SQRT (a * a + b * b)
      END


Reply With Quote