[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;
}