help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cannot call a C module from Fortran


From: Cottonwood
Subject: Re: Cannot call a C module from Fortran
Date: 24 May 2006 01:21:51 -0700
User-agent: G2/0.2

Cottonwood wrote:
> I want to call a C module from a Fortran program. Whatever I tried -
> the linker could not find the C module. I know about the leading
> underscore and switched even that off. I abstracted everything
> possible. When I replace the C module by a Fortran subroutine linking
> works. Here the Fortran subroutine that replaced the C module for
> testing:

>       subroutine qqcprint
>       return
>       end

> But when I use this C module in the same library (replacing the Fortran
> testmodule) linking didn't work any longer.

> void qqcprint()
> {
> return;
> }

> I also tried it with this one:

> extern void qqcprint()
> {
> return;
> }

> The result was always the same. With the Fortran subroutine linking
> works, with one of the C modules I get the message

> qqmodlib.a(qqprint.o):qqprint.for:(.text+0x42): undefined reference to
> `qqcprint'

> What am I doing wrong?


robert.corb...@sun.com wrote:
> I just noticed that you crossposted to gnu.g++,help.
> Is there any chance you compiled your C code with
> g++?  If so, you might need to use extern "C".

> Bob Corbett

Thank you so much. As a C beginner I wasn't able to see that. Now it
works with my changed C procedure:

extern "C" void qqcprint()
{
return;
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]