我在网上做了一些搜索,但是我找不到如何从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