私のプロジェクトでは "undefined reference to Mapmatcher::ransacMatches(cv::Mat, cv::Mat, Pose&)
"リンクエラーが発生します。以下に示すようにMWEを作成しようとしましたが、そのエラーは明らかです。私の推測では、関数の前にMapmatcher::
を置く必要がありましたが、私はclass Mapmatcher{}
で宣言しているので、それは必要ではありません。リンクエラーへの未定義参照
map_matcher_test_lib.h:
class Mapmatcher{
public:
Mapmatcher(void){};
void ransacMatches(cv::Mat matGlob, cv::Mat matLoc, Pose &pose);
};
map_matcher_test_lib.cpp:
#include "map_matcher_test/map_matcher_test_lib.h"
namespace map_matcher_test
{
//classes
class Mapmatcher{
void ransacMatches(cv::Mat matGlob, cv::Mat matLoc, Pose &pose)
{
// some code here...
}
};
}
map_matcher_test_node.cpp:
#include "map_matcher_test/map_matcher_test_lib.h"
Mapmatcher *mama = new Mapmatcher();
void mapMatcher()
{
// matGlob, matLoc, result known here
mama->ransacMatches(matGlob, matLoc, result);
}
int main (int argc, char** argv)
{
// some stuff...
mapMatcher();
}
助けていただければ幸いです。