Pregunta

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 ++). 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 trato de vincular los archivos de objetos generados se estropea. 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 usar el comando g ++ (o c ++)?

EDITAR: estoy agregando el archivo MAKE 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/*
¿Fue útil?

Solución

Puede vincular la biblioteca estándar de c ++ con el indicador -l a gcc:

gcc cplusplus.o -lstdc++ -o myexe

Otros consejos

Si ejecuta g ++ con el " -v " opción, mostrará qué comando y opciones utiliza. Debería poder deducir la línea de comando gcc correcta desde allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top