Łączenie kodu C ++ z 'gcc' (bez g ++)
Witam wszystkich: szybkie pytanie: jestem w sytuacji, w której użyteczne byłoby wygenerowanie mojego pliku wykonywalnego C ++ przy użyciu tylko 'gcc' (bez g ++). Powodem tego jest to, że muszę przesłać kod do serwera automatycznego przesyłania, który nie rozpoznaje polecenia „g ++” (lub „c ++”).
W moich eksperymentach, gdy jestemkompilacja gcc działa dobrze. Problem polega na tym, że gdy próbuję połączyć wygenerowane pliki obiektów, robi się źle. Teraz, w oparciu o to, co zrozumiałem ze strony man gcc (mogę być daleko, więc powiedz mi, czy jestem), g ++ jest w gcc, ale łączy bibliotekę C ++.
Jeśli to prawda, jak mogę (jeśli to możliwe) jawnie połączyć bibliotekę C ++bez używając polecenia g ++ (lub c ++)?
EDYTOWAĆ: Dodaję plik makefile, aby lepiej zilustrować problem:
<code>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/* </code>