Re: [問題] 請問在VS下 如何C/Fortran混編。。

看板Fortran作者 (碳管)時間15年前 (2009/07/28 01:33), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ [本文轉錄自 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

07/28 14:07, , 1F
帥ㄟ
07/28 14:07, 1F
文章代碼(AID): #1ARUJu8r (Fortran)
文章代碼(AID): #1ARUJu8r (Fortran)