Domanda

Ciao a tutti: domanda veloce: mi trovo in una situazione in cui sarebbe utile generare il mio eseguibile C ++ usando solo 'gcc' (senza g ++). Il motivo è che devo inviare il codice a un server di invio automatico che non riconosce il comando 'g ++' (o 'c ++', per quella materia).

Nei miei esperimenti, mentre sto compilando gcc funziona bene. Il problema è che quando provo a collegare i file degli oggetti generati viene incasinato. Ora, in base a ciò che ho capito dalla pagina man di gcc (potrei essere molto lontano, quindi dimmi se lo sono), g ++ è fondamentalmente gcc, ma collega la libreria C ++.

Se questo è vero, come posso (se possibile) collegare esplicitamente la libreria C ++ senza usando il comando g ++ (o c ++)?

EDIT: sto aggiungendo il makefile per illustrare meglio il 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/*
È stato utile?

Soluzione

Puoi collegare la libreria standard c ++ con il flag -l a gcc:

gcc cplusplus.o -lstdc++ -o myexe

Altri suggerimenti

Se esegui g ++ con " -v " opzione, mostrerà quale comando e quali opzioni utilizza. Dovresti essere in grado di dedurre la riga di comando gcc corretta da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top