0
我正在使用Mac OSX 10.11 El Capitan
。體系結構x86_64的未定義符號:El Capitan
此前我使用的是OSX 10.10
。我的舊版OSX我運行的是gcc 4.9
和g++ 4.9
。但升級到OSX 10.11
後,所有C++程序開始無法編譯。
然後我在OSX 10.11
切換回gcc 4.2
和我收到以下錯誤:
Undefined symbols for architecture x86_64:
"Graph::BFS(int)", referenced from:
_main in BFS-e06012.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我嘗試了所有的答案。我試過這些命令來運行:
$ g++ -stdlib=libstdc++ BFS.cc -o BFS
$ g++ -lstdc++ BFS.cc -o BFS
$ gcc -lstdc++ BFS.cc -o BFS
$ g++ BFS.cc
但是沒有什麼適合我的。
當我在外殼上啓動gcc --version
。我得到這個:
gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix
我試圖運行是BFS.cc
這是繼程序:
/*
* Algo: BFS
*/
#include <iostream>
#include <list>
using namespace std;
class Graph {
int V;
list<int> *adj;
public:
Graph(int V);
void addEdge(int v, int w);
void BFS(int s);
};
Graph::Graph(int V) {
this->V = V;
adj = new list<int> [V];
}
void Graph::addEdge(int v, int w) {
adj[v].push_back(w);
}
int main(int argc, char const *argv[]) {
Graph g(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
cout << "Following is Breadth First Traversal (starting from vertex 2) \n";
g.BFS(2);
return 0;
}
誰能幫助我在這?
實現就在那裏。我錯過了複製它。 –
然後這是另一個問題。你必須檢查你發佈的內容,現在完全由你來修改這個問題。 –