Hola a todos: pregunta rápida: Estoy en una situación en la que sería útil generar mi ejecutable C++ usando solo 'gcc' (sin g ++). La razón de esto es que tengo que enviar el código a un servidor de envío automático que no reconoce el comando 'g ++' (o 'C++', para el caso).Vinculación del código C++ con 'gcc' (sin g ++)
En mis experimentos, mientras estoy compilando gcc funciona bien. El problema es que, cuando trato de vincular los archivos de objetos generados, se arruina. Ahora, basándome en lo que entendí de la página del manual de gcc (puedo estar muy lejos, así que dime si lo estoy), g ++ es básicamente gcc, pero vincula la biblioteca de C++.
Si esto es cierto, ¿cómo puedo (si es posible) vincular explícitamente la biblioteca C++ sin usando el comando g ++ (o C++)?
EDIT: estoy añadiendo el makefile para ilustrar mejor el problema:
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/*
gcc y g ++ apuntan literalmente al mismo ejecutable. La única diferencia son las banderas pasadas al back-end. –
¡Solucione el servidor de envío automático! –
No era una opción = D –