---
title: Fortran与C互操作，main函数双重定义
description: "毕昇编译器在install_path/lib/目录下有libflangmain.a库，此静态库提供一个main函数供操作系统调用。所以Fortran程序只需要有自己的program函数就可以了。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/compilation/ug-bisheng/kunpengbisheng_06_0057.html
sourcePath: /source/zh/kunpengdevps/compilation/ug-bisheng/kunpengbisheng_06_0057.html
indexId: aa019d52ce5069ae9924e189795777e738575132acb315b1892cbc6beaee7b2074
---
# Fortran与C互操作，main函数双重定义

毕昇编译器在install_path/lib/目录下有libflangmain.a库，此静态库提供一个main函数供操作系统调用。所以Fortran程序只需要有自己的program函数就可以了。

当在Fortran与C互操作场景下，用户可能在C程序中提供自己的main函数，这样在链接时可能出现main双重定义的情况，如下

```
/bin/ld: c_call_fortran.o: in function `main':
c_call_fortran.c:(.text+0x0): multiple definition of `main';  /install/bin/../lib/libflangmain.a(flangmain.c.o):flangmain.c:(.text.main+0x0): first defined here
```

这时，只需要在编译链接选项中加入-fno-fortran-main即可。
