c和fortran混编(基于GNU/Linux,转自 linzch) 网 上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制。这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器能找到定义于其他模块中的符号,如果全部找到,则链接成功,生成可执行...
这也是混编的关键!现在开始真真儿的了。将主程序main.c换成fortran的c main.fprogram testexternal FOOcall FOO ()end还是原来的foo.c,也就是说由fortran调用c,仍旧是:gcc -c foo.cgcc -c main.f注意这里用的是gcc编译main.f(fortran程序),这是完全可以的。前面说了gcc是compiler collection,它会根据文件...
c和fortran混编 网上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制。...这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器能找到定义于其他模块中的符号,如果全部找到,则链接成功,生成可执行的二进制文件。...gcc总是...
c和fortran混编 有人说foo.o里还有一个未定义符号printf,这个到哪里去 找?gcc总是会有很多默认链接的库和链接选项,这其中包括c的标准库,而printf就在c标准库中。...加上-v选项就可以看出来,gcc在编译和链接时 到底做了哪些事。 又多说一点,如果一个函数有定义或者被调用,那么编译后在目标文件中就会有其相应...
2.通过 DLL 3.通过静态 lib 4.通过编译器直接链接Fortran和C的obj 不管是 Fortran 还是 C 的语法,通常不会规定混编的具体内容。这些内容,是不同的编译器自行规定的。(至少绝大多数是)所以,具体的操作,也因你选择 fortran语言中可通过定义子程序从而返回一系列变量值,而c语言的函数一般只能返回一个变量值。Fortr...