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即可。
父主题: Flang兼容性