下面是我想一起编译的C / Fortran文件的玩具示例。
C文件
void testfunc();
int main(void)
{
testfunc();
}
Fortran文件
subroutine testfunc() bind (C, name = "testfunc")
write(*,*) "Hello World!"
end subroutine
使用gcc,我可以使用命令生成二进制文件
gfortran -o my_prog main.c testfunc.f90
但是,当我尝试使用pgf90进行相同操作
pgf90 -o my_prog main.c testfunc.f90
我收到以下错误消息:
main.obj : error LNK2005: main already defined in f90main.obj
f90main.obj : error LNK2019: unresolved external symbol MAIN_ referenced in function main
在Windows上是否有使用pgi编译C + Fortran的标准过程?
答案 0 :(得分:5)
在链接中添加标志“ -Mnomain”,以使编译器不将F90主对象包含在链接中,而是使用用户提供的C main。