हाय सब: त्वरित प्रश्न: मैं ऐसी परिस्थिति में हूं जहां यह केवल 'gcc' (g ++ के बिना) का उपयोग करके मेरे सी ++ निष्पादन योग्य उत्पन्न करने के लिए उपयोगी होगा। इसका कारण यह है कि मुझे कोड को स्वचालित सबमिशन सर्वर पर सबमिट करना होगा जो 'g ++' (या 'C++', उस मामले के लिए) कमांड को नहीं पहचानता है।'gcc' के साथ C++ कोड को लिंक करना (g ++ के बिना)
मेरे प्रयोगों में, जबकि मैं संकलित जीसीसी अच्छी तरह से काम करता है। समस्या यह है कि, जब मैं जेनरेट की गई ऑब्जेक्ट फ़ाइलों को लिंक करने का प्रयास करता हूं तो यह गड़बड़ हो जाता है। अब, मैं जीसीसी मैन पेज से जो समझता हूं उसके आधार पर (मैं रास्ता बंद कर सकता हूं, इसलिए मुझे बताएं कि मैं हूं), जी ++ मूल रूप से जीसीसी है, लेकिन यह सी ++ लाइब्रेरी को लिंक करता है।
यदि यह सच है, तो मैं (+ संभव हो सकता है) सी ++ लाइब्रेरी स्पष्ट रूप से g ++ (या C++) कमांड का उपयोग कर के बिना कैसे लिंक कर सकता हूं?
संपादित करें: मैं makefile जोड़ रहा बेहतर समस्या को वर्णन करने के:
COMPILER = gcc
CFLAGS = -Wall -g -x c++
# MODULE COMPILATION
model: modules/model.h modules/sources/model.cpp
$(COMPILER) $(CFLAGS) -c modules/sources/model.cpp -o obj/model.o
algorithms: modules/algorithms.h modules/sources/algorithms.cpp
$(COMPILER) $(CFLAGS) -c modules/sources/algorithms.cpp -o obj/algorithms.o
io: modules/io.h modules/sources/io.cpp
$(COMPILER) $(CFLAGS) -c modules/sources/io.cpp -o obj/io.o
stopwatch: modules/stopwatch.h modules/sources/stopwatch.cpp
$(COMPILER) $(CFLAGS) -c modules/sources/stopwatch.cpp -o obj/stopwatch.o
# EXECUTABLE GENERATION
exe: model algorithms io stopwatch
$(COMPILER) $(CFLAGS) main.cpp obj/model.o obj/algorithms.o obj/io.o obj/stopwatch.o -o bin/process
# DEFAULT TEST CASE
run: exe
./bin/process -i data/nasa_small.log -a data/nasa_small.access -s data/nasa_small.stack
# CLEANING ROUTINE
clean:
rm -f obj/*
जीसीसी और जी ++ सचमुच एक ही निष्पादन योग्य पर इंगित करता है। एकमात्र अंतर झंडे को पीछे के अंत में पास किया जाता है। –
स्वचालित सबमिशन सर्वर को ठीक करें! –
कोई विकल्प नहीं था = डी –