对于我们的作业,我们有一个list.h
文件和一个list.o
文件,该文件已编译为源代码list.cpp
。
我有一个me.cpp
文件,它是list.h
中一个声明函数的实现,另一个是main.cpp
来测试它们(它也是赋值文件)
我没有一个好的makefile,实际上我的是:
main: LL.o list.o
g++ -c main.cpp LL.o list.o
LL.o : me.cpp list.h
g++ -c me.cpp
list.o : list.h
但是当我使用make语句时,它返回g++: warning: LL.o: linker input file unused because linking not done
g++: warning: list.o: linker input file unused because linking not done
它将我的me.cpp
文件变成了一些非常奇怪的东西!
任何人都有建议我该怎么办?
答案 0 :(得分:4)
g++ -c
表示“创建.o
文件,但实际上并未链接。”
如果要构建main
:
main: LL.o list.o main.o
g++ main.o LL.o list.o
这也意味着您应首先构建main.o
(在Makefile中添加g++ -c main.cpp -o main.o
)
修改以考虑评论:
您还应该实际构建LL.o
。您应该将g++ -c me.cpp
更改为g++ -c me.cpp -o LL.o
(但操作me.o
可能更有意义)