Łą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:
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/*