UAVProduct icon indicating copy to clipboard operation
UAVProduct copied to clipboard

编译时openMVG库出错,感觉是库的版本问题

Open WhuerLI opened this issue 3 years ago • 4 comments

你好,你使用的openMVG库是多少版本的,我用1.6版本的openMVG库报如下错误: In file included from /home/lc/UAVProduct/UAVProduct/UAVPreProcess.h:3:0, from /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:10: /home/lc/UAVProduct/UAVProduct/UAVInterface.h:15:18: error: ‘Pair_Set’ in namespace ‘openMVG’ does not name a type typedef openMVG::Pair_Set MatchesList; ^~~~~~~~ In file included from /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:10:0: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.h:80:19: error: ‘MatchesList’ does not name a type const MatchesList & corresponding_indexes, ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.h:82:41: error: ‘MatchesList’ has not been declared virtual UAVErr UAVProcessMatchesExport(MatchesList list,std::string pMatch); ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.h:83:41: error: ‘MatchesList’ has not been declared virtual UAVErr UAVProcessMatchesImport(MatchesList &list,std::string pMatch); ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: In member function ‘virtual UAVErr UAVProcessMatches::UAVProcessMatchesList(std::__cxx11::string, int, bool, std::__cxx11::string)’: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:445:5: error: ‘MatchesList’ was not declared in this scope MatchesList pose_pairs; ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:445:5: note: suggested alternative: ‘matchList’ MatchesList pose_pairs; ^~~~~~~~~~~ matchList /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:451:13: error: ‘pose_pairs’ was not declared in this scope pose_pairs = openMVG::exhaustivePairs(sfm_data.GetViews().size()); ^~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:516:17: error: expected ‘;’ before ‘view_pair’ MatchesList view_pair; ^~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:517:35: error: ‘pose_pairs’ was not declared in this scope for (const auto & pose_pair : pose_pairs) ^~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:517:35: note: suggested alternative: ‘pose_pair’ for (const auto & pose_pair : pose_pairs) ^~~~~~~~~~ pose_pair /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:530:21: error: ‘view_pair’ was not declared in this scope view_pair.insert( ^~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:538:9: error: ‘view_pair’ was not declared in this scope if (view_pair.empty()) ^~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:545:64: error: ‘view_pair’ was not declared in this scope UAVProcessAdjacencyMatrixToSVG(sfm_data.GetViews().size(), view_pair, ^~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: At global scope: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:559:6: error: prototype for ‘void UAVProcessMatches::UAVProcessAdjacencyMatrixToSVG(size_t, const Pair_Set&, const string&)’ does not match any in class ‘UAVProcessMatches’ void UAVProcessMatches::UAVProcessAdjacencyMatrixToSVG(const size_t NbImages, ^~~~~~~~~~~~~~~~~ In file included from /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:10:0: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.h:79:15: error: candidate is: virtual void UAVProcessMatches::UAVProcessAdjacencyMatrixToSVG(size_t, const int&, const string&) virtual void UAVProcessAdjacencyMatrixToSVG(const size_t NbImages, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:604:51: error: ‘UAVErr UAVProcessMatches::UAVProcessMatchesExport’ is not a static data member of ‘class UAVProcessMatches’ UAVErr UAVProcessMatches::UAVProcessMatchesExport(MatchesList list, std::string pMatch) { ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:604:51: error: ‘MatchesList’ was not declared in this scope /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:604:81: error: expected primary-expression before ‘pMatch’ ProcessMatches::UAVProcessMatchesExport(MatchesList list, std::string pMatch) { ^~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:604:87: error: expression list treated as compound expression in initializer [-fpermissive] ProcessMatches::UAVProcessMatchesExport(MatchesList list, std::string pMatch) { ^ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:613:51: error: ‘UAVErr UAVProcessMatches::UAVProcessMatchesImport’ is not a static data member of ‘class UAVProcessMatches’ UAVErr UAVProcessMatches::UAVProcessMatchesImport(MatchesList &list, std::string pMatch) { ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:613:51: error: ‘MatchesList’ was not declared in this scope /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:613:68: error: missing template arguments before ‘,’ token UAVErr UAVProcessMatches::UAVProcessMatchesImport(MatchesList &list, std::string pMatch) { ^ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:613:82: error: expected primary-expression before ‘pMatch’ rocessMatches::UAVProcessMatchesImport(MatchesList &list, std::string pMatch) { ^~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:613:88: error: expression list treated as compound expression in initializer [-fpermissive] rocessMatches::UAVProcessMatchesImport(MatchesList &list, std::string pMatch) { ^ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: In member function ‘virtual UAVErr UAVProcessFeatureSIFT::UAVProcessMatchesExtract(std::__cxx11::string, std::__cxx11::string)’: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:720:89: error: no matching function for call to ‘openMVG::matching_image_collection::Matcher::Match(openMVG::sfm::SfM_Data&, std::shared_ptropenMVG::sfm::Regions_Provider&, openMVG::Pair_Set&, openMVG::matching::PairWiseMatches&)’ lectionMatcher->Match(sfm_data, regions_provider, pairs, map_PutativesMatches); ^ In file included from /usr/local/include/openMVG/matching_image_collection/Matcher_Regions.hpp:15:0, from /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:23: /usr/local/include/openMVG/matching_image_collection/Matcher.hpp:38:16: note: candidate: virtual void openMVG::matching_image_collection::Matcher::Match(const std::shared_ptropenMVG::sfm::Regions_Provider&, const Pair_Set&, openMVG::matching::PairWiseMatchesContainer&, C_Progress*) const virtual void Match( ^~~~~ /usr/local/include/openMVG/matching_image_collection/Matcher.hpp:38:16: note: no known conversion for argument 1 from ‘openMVG::sfm::SfM_Data’ to ‘const std::shared_ptropenMVG::sfm::Regions_Provider&’ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: In member function ‘bool UAVProcessFeatureSIFTGpu::UAVImportFeatsToFile(std::__cxx11::string, std::vector&)’: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:973:24: warning: format not a string literal and no format arguments [-Wformat-security] printf(e.what()); ^ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: At global scope: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:992:23: error: ‘MatchesList’ does not name a type const MatchesList & map_Matches, ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: In function ‘void PairMatchingToAdjacencyMatrixSVG(size_t, const int&, const string&)’: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:996:23: error: request for member ‘empty’ in ‘map_Matches’, which is of non-class type ‘const int’ if ( !map_Matches.empty()) ^~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1004:47: error: request for member ‘find’ in ‘map_Matches’, which is of non-class type ‘const int’ auto iterSearch = map_Matches.find(std::make_pair(I,J)); ^~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1005:47: error: request for member ‘end’ in ‘map_Matches’, which is of non-class type ‘const int’ if (iterSearch != map_Matches.end()) ^~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp: In member function ‘virtual UAVErr UAVProcessFeatureSIFTGpu::UAVProcessMatchesExtract(std::__cxx11::string, std::__cxx11::string)’: /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1054:9: error: ‘MatchesList’ was not declared in this scope MatchesList pairs; ^~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1054:9: note: suggested alternative: ‘pMatchList’ MatchesList pairs; ^~~~~~~~~~~ pMatchList /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1055:21: error: expected ‘;’ before ‘pairs_filter’ MatchesList pairs_filter; ^~~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1056:60: error: ‘pairs’ was not declared in this scope if(!openMVG::loadPairs(feature.size(), pMatchList, pairs)) ^~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1060:24: error: ‘pairs’ was not declared in this scope int matchpairs=pairs.size(); ^~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1063:39: error: unable to deduce ‘auto&&’ from ‘pairs’ for ( const auto & cur_pair : pairs ) ^~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1069:50: error: ‘img2’ was not declared in this scope sDesc2 = feature[img2].descs_out; ^~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1069:50: note: suggested alternative: ‘img1’ sDesc2 = feature[img2].descs_out; ^~~~ img1 /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1086:17: error: ‘pairs_filter’ was not declared in this scope pairs_filter.insert(std::make_pair(img1,img2)); ^~~~~~~~~~~~ /home/lc/UAVProduct/UAVProduct/UAVPreProcess.cpp:1093:42: error: ‘pairs_filter’ was not declared in this scope pairs_filter,

WhuerLI avatar Oct 29 '20 09:10 WhuerLI