make: *** [Lab1] Ошибка 1

Я уже все прочитал Сделайте: *** [] Ошибка 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
*
* Создано 12 сентября 2013
* Автор: cam
* /

#include "Token.h"
Token::Token() {

}

Token::~Token() {

}

Token Token::getNextToken(char* buff) {

}

bool Token::processToken(char * buff) {

}

1

Решение

В конечном итоге я не включил два определения виртуальных методов в свой базовый класс. Несмотря на то, что он получил его для компиляции, мне интересно знать, почему это необходимо, поскольку они определены как виртуальные.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]