我在使用KarateMatch new_match;
编译Driver.cpp
文件时,使用g++ Driver.cpp KarateMatch.cpp -o output
创建新对象时收到此错误:
Undefined symbols for architecture x86_64:
"KarateMatch::KarateMatch()", referenced from:
_main in cc5G5Ak8.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
KarateMatch new_match;
我无法弄清楚我做错了什么,因为我在#include <KarateMatch.h>
和Driver.cpp
使用了KarateMatch.cpp
:
我已经尝试过在我的系统上完全显示的代码(OS X 10.8.1),但这并没有编译出同样的错误。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class KarateMatch{
public:
KarateMatch();
};
#include "KarateMatch.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
KarateMatch::KarateMatch(){
cout << "HI";
}
答案 0 :(得分:0)
它在我的系统上正常运行g ++ - 4.3 .. 我认为这不是KarateMatch.h和KarateMatch.cpp文件的问题。
首先尝试编译Driver.cpp而不包含KarateMatch.h文件,也不创建其对象。