I Ho appena iniziato a scherzare usando i protocolli di protocollo di Google e sto cercando di incorporare i file di output C++ dal compilatore del protocollo buffer nel mio progetto. Ho utilizzato fino ad ora un semplice makefile per i miei progetti e fa il trucco per creare file di origine che condividono tutti la stessa estensione. Io uso ".cpp" per i miei file sorgente, ma Google Protocol Buffers restituisce l'origine come file ".pb.cc". Devo essere in grado di compilare e collegare entrambi i tipi di file sorgente in un unico eseguibile.Makefile per la creazione di C++ Protocollo di protocollo di Google Project
Sono stato a cercare e giocherellare con il mio makefile per un paio d'ore e non hanno avuto successo.
mio Makefile attuale:
PROGRAM_NAME=aserv
CC=gcc
CXX=g++
RM=rm -f
CPPFLAGS=-g --std=c++14 -O3 -I/usr/local/include/
LDFLAGS=-g -L/usr/local/lib -L/usr/local/lib/boost
LDLIBS= -lrtaudio -pthread -lboost_system -lprotobuf
INSTALL_DIR = /usr/local/bin/
SRCS=$(wildcard *.cpp)
OBJS=$(subst .cpp,.o,$(SRCS))
all: $(PROGRAM_NAME)
$(PROGRAM_NAME): $(OBJS)
$(CXX) $(LDFLAGS) -o $(PROGRAM_NAME) $(OBJS) $(LDLIBS)
depend: .depend
.depend: $(SRCS)
rm -f ./.depend
$(CXX) $(CPPFLAGS) -MM $^>>./.depend;
clean:
$(RM) $(OBJS) $(PROGRAM_NAME) .depend
install:
cp $(PROGRAM_NAME) $(INSTALL_DIR)$(PROGRAM_NAME)
uninstall:
$(RM) $(INSTALL_DIR)$(PROGRAM_NAME)
dist-clean: clean
$(RM) *~ .depend
include .depend
non sto troppo bene addentro nella scrittura makefiles ancora, quindi ho solo che non so bene che cosa fare per fare questo lavoro.
se aiuta ho GNU make 4.1 e 5.3.1 gcc su Ubuntu 16.04 beta
Due piccole note a margine, è meglio utilizzare built-in variabili, come '$ @' (il nome della destinazione), o '$ ^' (uno spazio separato elenco di dipendenze dell'obiettivo). Inoltre, le librerie devono essere collegate prima che i tuoi oggetti siano collegati. – Leandros