c++ - C++ 中的编译错误:未定义对“main”collect2 的引用:错误:ld 返回 1 个退出状态
问题描述
我在 Linux 终端中运行的命令是:
g++ -c main.cpp fraction.cpp ; g++ -WALL -o main.o fraction.o
返回的完整输出是:
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-
gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
这main.cpp
是我的教授写的,他正在检查我们的分数类,所以主要不应该有错误。
解决方案
g++ -WALL -o main.o fraction.o
此命令指示您的编译器链接fraction.o
并创建一个名为main.o
. 当然,除了那main.o
是编译的结果main.cpp
。
您明显的意图是将两者 main.o
链接到fraction.o
一个新的可执行文件中。-o
您需要使用该选项指定要创建的可执行文件的名称,然后才列出您的两个目标文件。
但是,当然,您可能main.cpp
首先需要重新编译。
推荐阅读
- jmeter - TCP 采样器在发送消息时更改文本
- java - Java中是否存在用于具有固定哈希长度的字符串的就绪双向哈希函数?
- javascript - 如何在 WebStorm 中获取方法的调用层次结构
- javascript - 类型错误:__WEBPACK_IMPORTED_MODULE_0_react___default.a.createRef 不是函数
- linux - SIG_IGN 不适用于 PTRACE_TRACEME?
- c# - Selenium:如何从通过 CssSelector 或 XPath 提供的 HTML 中查找元素
- cpu-architecture - 地址寄存器(AR)和程序计数器寄存器(PC)有什么区别?
- firebase - 由于 Firebase Date 对象的更改,Flutter/Dart 应用程序中断
- java - 通过 jdbc 插入记录批处理时内存不足
- java - 我的 Gradle 源集依赖项中的类的 IntelliJ“找不到符号”