Re: [問題] 請問在VS下 如何C/Fortran混編。。
※ [本文轉錄自 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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章