Подтвердить что ты не робот

Связывание кода С++ с "gcc" (без g++)

Привет всем: быстрый вопрос: я в ситуации, когда было бы полезно сгенерировать мой исполняемый файл на С++, используя только "gcc" (без g++). Причина в том, что я должен отправить код на автоматический сервер отправки, который не распознает команду "g++" (или "С++", если на то пошло).

В моих экспериментах, когда я компиляция, gcc работает хорошо. Проблема в том, что когда я пытаюсь связать сгенерированные объектные файлы, он перепутался. Теперь, основываясь на том, что я понял из страницы gcc man (я могу быть в стороне, так скажите мне, если я есть), g++ в основном gcc, но он связывает библиотеку С++.

Если это так, как я могу (если возможно) явно связывать библиотеку С++ без с помощью команды g++ (или С++)?

EDIT: Я добавляю 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/*
4b9b3361

Ответ 1

Вы можете связать стандартную библиотеку С++ с флагом -l с gcc:

gcc cplusplus.o -lstdc++ -o myexe

Ответ 2

Если вы запустите g++ с опцией -v, он покажет, какую команду и параметры он использует. Вы должны иметь возможность выводить правильную командную строку gcc.