2016-11-25 73 views
0

未定義的符號我自學了VBA並一直在使用它被廣泛用於在過去的4年(工廠,多inhertiance,多形設計),所以我有先進的編程技術有一些瞭解。我自學C++作爲擴大我的技能的一種方式,但是從編譯器收到錯誤消息可以留下一個撓頭的相當長的一段時間。我收到的錯誤消息「架構x86_64的未定義符號」是一個常見主題,通常由非常簡單的東西引起。我已經審查了其中許多無濟於事。我完全喪失了。的Xcode 8 - 適用於建築x86_64的

在錯誤消息中的行如下所示:

"operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, Point<double> const&)", referenced from: 

    TestPoint() in TestPoint.o 

TestPoint.cpp包含以下行:

cout << "p1: " << p1 << endl; 

這是錯誤的近因,但我明白錯誤源於上面引用的「p1」對象。

爲 「P1」 對象頭文件包含了以下定義:

//template <class T> 
friend std::ostream& operator << (std::ostream& os, const Point<T>& p); 

具有以下包括語句沿着:

#include <stdio.h> 
#include <iostream> 

雖然源文件包含:

template <class G> 
std::ostream& operator << (std::ostream& os, const Point<G>& p) 
{//Print 
    os << "(" << p.m_first << "," << p.m_second << ")\n"; 
    return os; 
} 

有了這些包含語句:

#include <math.h> 
#include <iostream> 
#include "Point.hpp" 

我也試圖瞭解模板,我的一些編程夥伴告訴我的模板本身就是一個難題。

的定義和執行出現匹配,但是我不知道爲什麼編譯器是抱怨。任何援助將不勝感激。

我和Xcode 8.1工作

回答

相關問題