मैंने कुछ खोज ऑनलाइन की हैं लेकिन मुझे पता नहीं है कि लिनक्स से एक सरल सी ++ और फोरट्रान कोड कैसे संकलित किया जाए। मुझे इसके साथ जटिल होने की जरूरत है, लेकिन मुझे बस एक सरल उदाहरण के साथ शुरू करने की आवश्यकता है।मिश्रित सी ++ और फोरट्रान लिंकिंग समस्या
#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;
}
मेरे फोरट्रान कोड यह है::
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
उपयोग कर रहा हूँ मेरी फोरट्रान कोड और जी संकलित करने के लिए C++ के लिए ++ कोड
मेरे सी ++ कोड यह है। मैं इस टर्मिनल कमांड की कोशिश की है: "। लिंकर इनपुट फ़ाइल अप्रयुक्त क्योंकि नहीं किया लिंकिंग"
$ ifort -c Program.f90
$ g++ -o Main.cpp Program.o
लेकिन त्रुटि मैं हो रही है कहते हैं मुझे यकीन नहीं है कि दोनों को एक साथ कैसे लिंक करें। अगर कोई मेरी मदद कर सकता है तो मैं इसकी सराहना करता हूं!
पीएस - मैंने अपनी संकलन रेखा के अंत में -lg2c
जोड़ने का प्रयास किया है, और यह पहचाना नहीं गया है।
आप 'g ++' गलत लगता है, 'g ++ -o Program.o Main.cpp –
@ZacWrangler होना चाहिए, क्योंकि यह C++ Program.o पहले निर्मित फोरट्रान प्रोग्राम को ओवरराइट नहीं करेगा। इसके बजाय, अलग ऑब्जेक्ट फ़ाइल नाम हैं। – milancurcic