2016-10-29 8 views
1

を行っていないリンキングので、私は私のプログラムをコンパイルするときに私は、私が質問にいくつかのソリューションを問題にしようとしているいるが、それは私のために働くdoes notのため、ここでの私の問題があるリンカ入力ファイル未使用

INCLUDE = include 
LIB  = lib 
OBJ  = obj 
SRC  = src 
BIN  = bin 
CXX  = g++ 
CPPFLAGS = -Wall -g -c 

$(BIN)/pruebacronologia : $(OBJ)/pruebacronologia.o 
    $(CXX) -o $(BIN)/pruebacronologia $(OBJ)/EventoHistorico.o $(SRC)/EventoHistorico.cpp -I$(INCLUDE) 
$(OBJ)/EventoHistorico.o : $(SRC)/EventoHistorico.cpp 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/EventoHistorico.o $(SRC)/EventoHistorico.cpp -I$(INCLUDE) 

$(OBJ)/cronologia.o : $(SRC)/cronologia.cpp $(OBJ)/EventoHistorico.o 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/cronologia.o $(SRC)/cronologia.cpp $(OBJ)/EventoHistorico.o -I$(INCLUDE) 

$(OBJ)/pruebacronologia.o : $(SRC)/pruebacronologia.cpp $(OBJ)/cronologia.o 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/pruebacronologia.o $(SRC)/pruebacronologia.cpp $(OBJ)/cronologia.o $(OBJ)/EventoHistorico.o -I$(INCLUDE) 

それから私bashでこのエラーが発生する:

g++: warning: obj/cronologia.o: linker input file unused because linking not done 
g++: warning: obj/EventoHistorico.o: linker input file unused because linking not done 
g++ -o obj/EventoHistorico.o -Iinclude 
g++: fatal error: no input files 
compilation terminated. 
make: *** [bin/pruebacronologia] Error 4 

答えて

1

メイクファイルがうまく構築されていないようです。各ターゲット.oに対して、対応する.cファイルからコンパイルされた.oを設定します。 実行ファイルを作成するには、生成された.oをすべて追加してください。 は、私はこのような何かが良い仕事になると思う:

INCLUDE = include 
LIB  = lib 
OBJ  = obj 
SRC  = src 
BIN  = bin 
CXX  = g++ 
CPPFLAGS = -Wall -g -c 

$(BIN)/pruebacronologia : $(OBJ)/cronologia.o $(OBJ)/pruebacronologia.o $(OBJ)/EventoHistorico.o 
    $(CXX) -o $(BIN)/pruebacronologia $^ $(LDFLAGS) 

$(OBJ)/EventoHistorico.o : $(SRC)/EventoHistorico.cpp 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/EventoHistorico.o $(SRC)/EventoHistorico.cpp -I$(INCLUDE) 

$(OBJ)/cronologia.o : $(SRC)/cronologia.cpp 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/cronologia.o $(SRC)/cronologia.cpp -I$(INCLUDE) 

$(OBJ)/pruebacronologia.o : $(SRC)/pruebacronologia.cpp 
    $(CXX) $(CPPFLAGS) -o $(OBJ)/pruebacronologia.o $(SRC)/pruebacronologia.cpp -I$(INCLUDE) 
+0

あなたがオブジェクト・ファイルを生成したいとき、コンパイラに '-c'オプションを追加する必要があります。それ以外の場合は、プログラムをリンクしようとし、失敗します。 – MadScientist

+0

タンク、今はImいくつかのプログラムのエラーを取得し、まだなぜ知りません。 – Rusillo

関連する問題