c++ - g++ 链接目标文件无法链接

标签 c++ g++ linker-errors

对于我们的作业,我们有一个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++:警告:list.o:链接器输入文件未使用,因为链接未完成 它将我的 me.cpp 文件变成了非常奇怪的东西! 任何人有我应该做什么的建议?

最佳答案

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 代替)

关于c++ - g++ 链接目标文件无法链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790588/

相关文章:

c++ - 使用预先已知的模式进行内存分配

c++ - 为什么 g++ 4.6.2 仍然需要 "-std=c++0x"?

microsoft-metro - 将 VS2012 Windows 8 Metro 解决方案转换为 VS2013 后未解析的符号(在 Windows 8.1 上)

gcc - 你能在 ld 脚本中添加两个 SECTION 部分吗

c++ - NaCl 和共享内存

c++ - 当我看到它被删除时,为什么 googlemock 报告泄漏的模拟?

使用 g++ 链接到 C++ dll 的 C++ 库

Qt 应用程序严重失败

linux - 无法找到完整路径 g++ 和 gcc

c - 对函数调用的 undefined reference