0

これが頭を悩ませています。

このリンクエラーがあります。

g++ -o  node.o pathfinding.o prueba.o libmatrix.a -lm -lz -llog4cplus
Undefined symbols for architecture x86_64:
  "operator<(Node const&, Node const&)", referenced from:
      std::less<Node>::operator()(Node const&, Node const&) constin pathfinding.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [path] Error 1

クラス Node のヘッダーで、クラス宣言から:

// Determine f_score in priority queue
//------------------------------------------
bool operator < (const Node &a, const Node &b);

// Determine f_score in priority queue
//------------------------------------------
bool operator > (const Node &a, const Node &b);

ソース ファイル (Node.cpp) には、次のメソッド宣言があります。

#include "node.hpp"

// Determine f_score in priority queue
//------------------------------------------
bool operator < (const Node &a, const Node &b)
{
     return a.getf() > b.getf();
}

// Determine f_score in priority queue
//------------------------------------------
bool operator > (const Node &a,  const Node &b)
{
     return a.getf() < b.getf();
}

どこに問題があるかは誰にでもわかります。OSX の g++ バージョン 4.2.1 を使用しています。

前もって感謝します。

4

1 に答える 1