链接器输入文件未使用,因为链接尚未完成

linker input file unused because linking not done

本文关键字:链接 因为 未完成 未使用 输入 文件      更新时间:2023-10-16

我有一个问题,当我编译我的程序,我一直在尝试一些问题的解决方案,但它不适合我,所以这是我的问题

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

您的makefile似乎没有很好地构建。对于每个目标.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)