Привет всем: quick question: Я нахожусь в ситуации, когда было бы полезно сгенерировать мой исполняемый файл C ++, используя только 'gcc' (без g ++). Причина этого заключается в том, что я должен отправить код на сервер автоматической отправки, который не распознает команду «g ++» (или, в данном случае, «c ++»).
В моих экспериментах, пока я , компиляция gcc работает хорошо. Проблема в том, что, когда я пытаюсь связать сгенерированные объектные файлы, это испортилось. Теперь, основываясь на том, что я понял из man-страницы gcc (я могу быть далеко, поэтому скажите мне, если это так), g ++ в основном gcc, но он связывает библиотеку C ++.
Если это так, как я могу (если возможно) явно связать библиотеку C ++ без с помощью команды g ++ (или c ++)?
РЕДАКТИРОВАТЬ: Я добавляю make-файл, чтобы лучше проиллюстрировать проблему:
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/*