c++ - 制作 :*** [Lab1] Error 1

标签 c++ eclipse makefile binaries

我已经阅读了所有内容 Make: *** [] Error 1并且我在我的主要方法中返回了一个 0。

我试过切换解析器,但这也不起作用。我已经尝试过内部构建,但它不起作用(即使它起作用了,我也想使用 makefile 的)。

这是给出错误的示例。我相信这就是阻止我创建二进制文件的原因,而二进制文件是运行我的应用程序所必需的。

错误图片链接 -> http://upit.cc/i/c6b2db81.png

这是控制台位。我进行了刷新,然后进行构建。

23:52:19 **** Build of configuration Debug for project Lab1 ****
make all 
Building file: ../src/Run.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Run.d" -MT"src/Run.d" -o "src/Run.o" "../src/Run.cpp"
Finished building: ../src/Run.cpp

Building file: ../shared-src/EndToken.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"shared-src/EndToken.d" -MT"shared-src/EndToken.d" -o "shared-src/EndToken.o" "../shared-src/EndToken.cpp"
Finished building: ../shared-src/EndToken.cpp

Building file: ../shared-src/ErrorToken.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"shared-src/ErrorToken.d" -MT"shared-src/ErrorToken.d" -o "shared-src/ErrorToken.o" "../shared-src/ErrorToken.cpp"
Finished building: ../shared-src/ErrorToken.cpp

Building file: ../shared-src/Token.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"shared-src/Token.d" -MT"shared-src/Token.d" -o "shared-src/Token.o" "../shared-src/Token.cpp"
Finished building: ../shared-src/Token.cpp

Building file: ../server-src/server-token/SToken.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"server-src/server-token/SToken.d" -MT"server-src/server-token/SToken.d" -o "server-src/server-token/SToken.o" "../server-src/server-token/SToken.cpp"
Finished building: ../server-src/server-token/SToken.cpp

Building file: ../server-src/server-token/StartSToken.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"server-src/server-token/StartSToken.d" -MT"server-src/server-token/StartSToken.d" -o "server-src/server-token/StartSToken.o" "../server-src/server-token/StartSToken.cpp"
Finished building: ../server-src/server-token/StartSToken.cpp

Building file: ../server-src/Message.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"server-src/Message.d" -MT"server-src/Message.d" -o "server-src/Message.o" "../server-src/Message.cpp"
Finished building: ../server-src/Message.cpp

Building file: ../server-src/Server.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"server-src/Server.d" -MT"server-src/Server.d" -o "server-src/Server.o" "../server-src/Server.cpp"
Finished building: ../server-src/Server.cpp

Building file: ../server-src/User.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"server-src/User.d" -MT"server-src/User.d" -o "server-src/User.o" "../server-src/User.cpp"
Finished building: ../server-src/User.cpp

Building target: Lab1
Invoking: GCC C++ Linker
g++  -o "Lab1"  ./src/Run.o  ./shared-src/EndToken.o ./shared-src/ErrorToken.o ./shared-src/Token.o  ./server-src/server-token/SToken.o ./server-src/server-token/StartSToken.o  ./server-src/Message.o ./server-src/Server.o ./server-src/User.o   
./shared-src/Token.o:(.rodata._ZTV5Token[_ZTV5Token]+0x20): undefined reference to `Token::getNextToken(char*)'
./shared-src/Token.o:(.rodata._ZTV5Token[_ZTV5Token]+0x28): undefined reference to `Token::processToken(char*)'
collect2: error: ld returned 1 exit status
make: *** [Lab1] Error 1
23:52:20 Build Finished (took 904ms)

从图中可以看出,Lab1 没有二进制文件,并且显示了 make 错误。

找到解决方案感谢评论的人

我将这段代码作为对这个问题的评论的引用。

/*
 * Token.h
 *
 *  Created on: Sep 12, 2013
 *      Author: cam
 */
#pragma once

class Token {

public:
    Token();
    virtual ~Token();

    enum TOKEN_TYPE {START, MIDDLE, END, ERROR};
    /**
     * @pre processToken must be ran first!
     */
    virtual Token getNextToken(char*);
    virtual bool processToken(char*);

};

/* * token .cpp * * 创建于:2013 年 9 月 12 日 * 作者:cam */

#include "Token.h"

Token::Token() {

}

Token::~Token() {

}

Token Token::getNextToken(char* buff) {

}

bool Token::processToken(char * buff) {

}

最佳答案

最终我没有在我的基类中包含两个虚拟方法定义。虽然这让它可以编译,但我很想知道为什么这是必要的,因为它们被定义为虚拟的。

关于c++ - 制作 :*** [Lab1] Error 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778914/

相关文章:

c++ - 我可以在单独的线程上刷新我的 ofstream 吗?

makefile - 了解 makefile 中的 "subst"关键字和特定行

我可以在 C 程序中拦截正常的 stdio 调用,做一些工作然后调用原始的吗?

c++ - 初始化模板内部类的静态成员

c++ - 如何在 Windows 不分配盘符的情况下创建分区?

linux - QEMU 在 Eclipse 中运行正常,但在调试时失败

Eclipse IDE 远程调试和远程编辑旧版 Web 应用程序

git - 在 Makefile 中,如何获取 git commit 哈希并将其分配给变量?

c++ - 在不区分大小写的文件系统上模拟区分大小写

android - 在 git 存储库 Android 应用程序上提交后出错