我在網上做了一些搜索,但是我找不到如何從linux編譯一個簡單的C++和Fortran代碼。我需要複雜一些,但我只需要知道如何從一個簡單的例子開始。混合C++和Fortran鏈接問題
我的C++代碼是這樣的:
#include <iostream>
using namespace std;
extern int Add(int *, int *);
extern int Multiply(int *, int *);
int main()
{
int a,b,c;
cout << "Enter 2 values: ";
cin >> a >> b;
c = Add(&a,&b);
cout << a << " + " << b << " = " << c << endl;
c = Multiply(&a,&b);
cout << a << " * " << b << " = " << c << endl;
return 0;
}
我的Fortran代碼是這樣的:
integer function Add(a,b)
integer a,b
Add = a+b
return
end
integer function Multiply(a,b)
integer a,b
Multiply = a*b
return
end
我使用ifort
編譯我Fortran代碼和g ++中的C++代碼。我試過這個終端命令:
$ ifort -c Program.f90
$ g++ -o Main.cpp Program.o
但我得到的錯誤說「鏈接器輸入文件未使用,因爲鏈接沒有完成」。 我不知道如何將兩者聯繫在一起。如果有人能幫助我,我將不勝感激!
PS - 我已經嘗試在我的編譯行末尾添加-lg2c
,並且它不被識別。
您'g ++'看起來不對,應該是'g ++ -o Program.o Main.cpp –
@ZWWrangler它不應該,因爲C++ Program.o會覆蓋以前生成的Fortran Program.o。相反,有不同的目標文件名稱。 – milancurcic