私はオンラインで検索しましたが、単純なC++やFortranのコードをlinuxからコンパイルする方法を見つけることができません。私はそれと複雑になる必要がありますが、私は単純な例から始める方法を知る必要があります。混在した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
私はC++コードのための私のFortranコードとg ++をコンパイルするifort
を使用しています。私はこの端末コマンドを試しました:
$ ifort -c Program.f90
$ g++ -o Main.cpp Program.o
しかし、私は "リンクが完了していないためにリンカー入力ファイルが未使用です"と言うエラーが発生しています。 2つをリンクする方法がわかりません。誰かが私を助けてくれたら嬉しいです!
PS - コンパイル行の最後に-lg2c
を追加しようとしましたが、認識されません。
あなたは 'g ++'が間違っているように見えます。 'g ++ -o Program.o Main.cpp –
@ZacWrangler C++ Program.oは以前ビルドされたFortran Program.oを上書きするので、そうしてはいけません。むしろ、異なるオブジェクトファイル名を使用してください。 – milancurcic