2016-11-07 17 views
0

,我是学计算机工程和我​​试图编译的工作,但我得到了这个问题铛:警告:principal.o:“链接”输入未使用

clang: warning: principal.o: 'linker' input unused

称号警告

我认为这是我的Makefile中的一个问题,但我无法找到它。这里是我的Makefile

CPPFLAGS = g++ -c 

principal : principal.o 
    $(CPPFLAGS) principal.o -o principal 

principal.o: principal.cpp conjunto.o 
    $(CPPFLAGS) principal.cpp -o principal.o -I. 

enfermedad.o: enfermedad.cpp 
    $(CPPFLAGS) enfermedad.cpp -o enfermedad.o -I. 

mutacion.o: mutacion.cpp enfermedad.o 
    $(CPPFLAGS) mutacion.cpp -o mutacion.o -I. 

conjunto.o: conjunto.cpp mutacion.o 
    $(CPPFLAGS) conjunto.cpp -o conjunto.o -I. 

clean: 
    echo "Cleaning..." 
    rm *.o 

非常感谢那些回答。

+0

'G ++ -c principal.o -o principal'不看我的权利。不应该是'g ++ principal.o principal'吗? – ikegami

+1

'-c'选项表示“不运行链接器”。 –

回答

0

使用CPPFLAGS来指定编译器和标志最好是常规的;你最好把它们分开。

的最小修复您的Makefile:

principal : principal.o 
    g++ principal.o -o principal 

这避免了包括-c选项打算程序链接时。但是,您可能需要列出链接命令行中的所有对象文件。你的依赖结构也有点不寻常,虽然不是正式的错误。

一个更合理的修正,因此,是:

OBJECTS = principal.o enfermedad.o mutacion.o conjunto.o 

principal: ${OBJECTS} 
    g++ ${OBJECTS} -o [email protected] 
相关问题