compiler - Enlace del código C++ con ''gcc''(sin g++)
makefile c++ (2)
Hola a todos: pregunta rápida: estoy en una situación en la que sería útil generar mi ejecutable de C ++ usando solo ''gcc'' (sin g ++). El motivo 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).
En mis experimentos, mientras estoy compilando gcc funciona bien. El problema es que cuando intento vincular los archivos de objetos generados, se ensucian. Ahora, según lo que entendí de la página del manual de gcc (puede que esté muy lejos, así que dime si lo soy), g ++ es básicamente gcc, pero enlaza la biblioteca de C ++.
Si esto es cierto, ¿cómo puedo (si es posible) vincular explícitamente la biblioteca de C ++ sin utilizar el comando g ++ (o c ++)?
EDITAR: Estoy agregando 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/*
Puede vincular la biblioteca estándar de c ++ con el indicador -l
a gcc:
gcc cplusplus.o -lstdc++ -o myexe
Si ejecuta g ++ con la opción "-v", mostrará qué comando y opciones utiliza. Debería poder deducir la línea de comando gcc correcta desde allí.