最終,我試圖編寫一個使用Fortran計算的IPC計算器來計算C,並在兩個Fortran程序之間傳遞數據。當我完成它有望樣子:編寫C函數,返回int到Fortran
Fortran program to pass input -> Client written in C -> Server written in C -> Fortran program to calculate input and pass ans back
C客戶機/服務器部分已經完成了,但此刻我是卡試圖寫一個程序,它輸入一個Fortran程序,並將其傳遞給C程序來計算答案。但是,我看到索姆奇怪的行爲。
Fortran程序
program calculator
!implicit none
! type declaration statements
integer x
x = 1
! executable statements
x = calc(1,1)
print *, x
end program calculator
C函數
int calc_(int *a, int *b) {
return *a+*b;
}
我寫了驗證,當所謂的在C calc_(1,1)INT calc_()確實返回2主程序,但是當我運行程序時,我從Fortran獲得輸出。
我使用這個Makefile 爲C#使用gcc和gfortran的Fortran代碼。 CC = GCC FC = gfortran
calc : calcf.o calcc.o
$(FC) -o calc calcf.o calcc.o
calcc.o : calcc.c
$(CC) -Wall -c calcc.c
calcf.o: calcf.f90
$(FC) -c calcf.f90
我不能爲世界弄清楚爲什麼是這樣的話,它的駕駛我瘋了。
爲什麼你有'隱式沒有'註釋掉?如果它沒有被註釋掉,編譯器會告訴你問題是什麼! – IanH