作者Carbontube (碳管)
看板Fortran
标题Re: [问题] 请问在VS下 如何C/Fortran混编。。
时间Tue Jul 28 01:33:43 2009
※ [本文转录自 C_and_CPP 看板]
作者: Carbontube (碳管) 看板: C_and_CPP
标题: Re: [问题] 请问在VS下 如何C/Fortran混编。。
时间: Tue Jul 28 01:30:32 2009
试了 5小时 终於用intel complier实做成功
/*这里面搞死人 真的有很重的complier相依性*/
我自回:
1.同一个solution下面开两个project 一个是C
一个是fortran
2. 把C的那个的complier设成 C ,小心不要设成C++,并把 configuation type
设成 static library(在properties里改)
然後最好把 code generation下的 runtime library设为MT
3.把fortran的那个project中的 project dependences设为C的那个 project
这时可以暗下play看看 该会有一堆 error link
4. 在 fortran那 project中的 input 的 ignore specific lirary加入
MSVCRTD.lib
完成
注意:
ㄅ.这里都是假设使用intel C 与intel fortran complier ,我试过把complier换成
MS C。。。连不起来(C code本身要modify)
ㄆ. 因为fortran不分大小写,对於intel fortran而言(其他没试过),
他是抓全部大写的function ,所以C中的function若要给 fortran call
凡请把function多层全部大写的包装
ㄇ. GNU C是把function name 加个 _,好比 fun -> fun_
不过intel的是原封不动,所以C与function有同名函数时要小心
※ 引述《Carbontube (碳管)》之铭言:
: 题目简化下:
: 我的C 是这样:
: C.h :
: #ifndef _C_H_
: #define _C_H_
: int ADD(int*, int*, int*);
: #endif
: C.c:
: #include "C.h"
: int ADD(int *x, int *y, int *sum)
: {
: int succ = 1;
: *sum = *x + *y;
: return succ;
: }/*int ADD*/
: fortran :
: program Fcode
: implicit none
: ! Variables
: INTEGER :: A = 1
: INTEGER :: B = 3
: INTEGER :: AN = 0
: !INTEGER
: ! Body of Console1
: write(*,*) 'Hello World'
: CALL ADD(A, B, AN)
: write(*,*) AN
: end program Fcode
: 在同一个solution下 ,开两个project,一个是C, 一是fortran
: 两个complier都是用intel的,而C的complier是选C ,而不是C++
: 按下F5,总是出现下面的error :
: MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main
: referenced in function ___tmainCRTStartup
: 2> fatal error LNK1120: 1 unresolved
: externals
: 2>C - 2 error(s), 1 warning(s)
: 1>Fcode.obj : error LNK2019: unresolved external symbol _ADD referenced in
: function _MAIN__
: 1>Debug\F.exe : fatal error LNK1120: 1 unresolved externals
: 1>
: 那请问该要如合修改 code与IDE设定 才能将fortran/C 混编呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.131.101
※ 编辑: Carbontube 来自: 58.115.131.101 (07/28 01:31)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.131.101
1F:推 moonshaped:帅ㄟ 07/28 14:07