加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上编译C / Fortran代码和pgi的问题:“main已定义”

发布时间:2020-12-14 04:26:33 所属栏目:Windows 来源:网络整理
导读:下面是我想要一起编译的C / Fortran文件的玩具示例. C文件 void testfunc();int main(void){ testfunc();} Fortran文件 subroutine testfunc() bind (C,name = "testfunc") write(*,*) "Hello World!"end subroutine 使用gcc,我可以使用命令生成二进制文件 g
下面是我想要一起编译的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的标准过程?

解决方法

将标志“-Mnomain”添加到链接以使编译器不将F90主对象包含到链接中,而是使用用户提供的C main.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读