我已經開始編寫一個非常簡單的類,而且各種類的方法似乎給我帶來了問題。我希望問題是我,解決方法很簡單。C++編譯問題; class methods
命令克++ -o主main.cpp中給出瞭如下因素輸出:
/usr/bin/ld: Undefined symbols:
Lexer::ConsoleWriteTokens()
collect2: ld returned 1 exit status
main.cpp中:
#include<iostream>
#include"lexer.h"
int main(){
Lexer lexhnd = Lexer();
std::cout << "RAWR\n";
lexhnd.ConsoleWriteTokens();
std::cout << "\n\n";
return 0;
}
lexer.h:
#ifndef __SCRIPTLEXER
#define __SCRIPTLEXER
#include <iostream>
#include <string>
#include <vector>
#define DEF_TOKEN_KEYWORD 0
struct token{
int flag;
std::string data;
};
class Lexer
{
public:
// bool IsTrue();
// bool AddLine(char * line);
void ConsoleWriteTokens(void);
private:
std::vector<token> TOK_list;
};
#endif
lexer.cpp :
bool Lexer::IsTrue(){
return true;
};
bool Lexer::AddLine(char * line){
token cool;
cool.data = line;
TOK_list.push_back(cool);
string = line;
return true;
};
void Lexer::ConsoleWriteTokens(void){
for (int i = 0; i < TOK_list.size(); i++){
std::cout << "TOKEN! " << i;
}
return 0;
};
我在xcode btw中使用g ++。
Thankyou非常提前,我已經在這個問題上了幾個小時。
編輯:
g++ -o main lexer.h main.cpp
or
g++ -o main lexer.cpp main.cpp
or
g++ -o main main.cpp lexer.cpp
就不能工作。 -Hyperzap
+1包含錯誤,您用於編譯的命令和一個最小示例。一個非常好的問題。 – Tom 2011-05-06 13:35:33
我想你應該學會編寫Makefiles或者使用automake/autoconf或者cmake或者qmake或者使用一個IDE來爲你做任何事情。 – 2011-05-06 13:54:56