का उपयोग करके लिंक नहीं कर रहा है मेरे पास एक सी-लाइब्रेरी है जिसका मैं जीसीसी में उपयोग करता हूं। पुस्तकालय में एक्सटेंशन है। Lib लेकिन हमेशा एक स्थिर पुस्तकालय के रूप में जुड़ा हुआ है। यदि मैं एक प्रोग्राम लिखता हूं जो लाइब्रेरी को सी-कोड के रूप में उपयोग करता है, तो सब कुछ ठीक है। अगर मैं फ़ाइल को .cpp में बदलता हूं (सरल सामग्री जो सी/सी ++ दोनों में काम करता है) मुझे अपरिभाषित संदर्भ मिलता है। ये सरल छोटे कार्यक्रम हैं जिन्हें मैं परीक्षण उद्देश्यों के लिए लिखता हूं ताकि कोई फैंसी सामान न हो। मैं उपयोग कर संकलन:सी-लाइब्रेरी जीसीसी/जी ++
gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread
उपर्युक्त काम एक आकर्षण की तरह काम करता है। हालांकि: customlibrary.lib में किसी भी कार्य करने के लिए अपरिभाषित संदर्भ में
g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread
या
gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++
का परिणाम है। मैंने customlibrary.a नामक एक प्रतीकात्मक लिंक बनाने की कोशिश की लेकिन कोई भाग्य नहीं।
जी ++ मेरी लाइब्रेरी को क्यों पहचान नहीं पाएगा। दुर्भाग्यवश मेरे पास पुस्तकालयों के स्रोत कोड तक कोई पहुंच नहीं है लेकिन सी-lib को C++ से जोड़ने से कोई समस्या नहीं होनी चाहिए?
प्रतीक '__cplusplus' दो अंडरस्कोर है:
या एक पूरे हेडर फाइल के लिए यह करना: सामान्य तरीके से इस दौर संकलक कि कुछ कार्यों की जरूरत है सी लिंकेज बताने के लिए है प्रासंगिक मानकों से। – RBerteig