gpt4 book ai didi

c++ - OpenCV 未定义引用(带 vector 的 FileStorage)

转载 作者:行者123 更新时间:2023-11-28 07:09:06 30 4
gpt4 key购买 nike

最近一直在使用一些 OpenCV,但是我遇到了一个有趣的问题。我有一个简单的类来存储数据并将数据读取和写入文件。

这是写函数:

cv::Mat descriptors;
vector<cv::KeyPoint> keypoints;

void EventType::write(cv::FileStorage outfile) {
outfile << "descriptorId" << descriptors;
outfile << "keypointId" << keypoints;
}

链接时出现问题:

EventType.cpp.o: In function cv::FileStorage& cv::operator<< <std::vector<cv::KeyPoint,
std::allocator<cv::KeyPoint> > >(cv::FileStorage&, std::vector<cv::KeyPoint,
std::allocator<cv::KeyPoint> > const&)':
EventType.cpp:(.text+0xc99): undefined reference to `cv::write(cv::FileStorage&,
std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> > const&)'

然而,在链接时它也建议以下替代方案:

/opencv2/core/operations.hpp:2707: note: candidates are: void cv::write(cv::FileStorage&, const std::string&, int)
/opencv2/core/operations.hpp:2708: note: void cv::write(cv::FileStorage&, const std::string&, float)
/opencv2/core/operations.hpp:2709: note: void cv::write(cv::FileStorage&, const std::string&, double)
/opencv2/core/operations.hpp:2710: note: void cv::write(cv::FileStorage&, const std::string&, const std::string&)
/opencv2/core/operations.hpp:2787: note: void cv::write(cv::FileStorage&, const cv::Range&)
/opencv2/core/operations.hpp:2856: note: void cv::write(cv::FileStorage&, const std::string&, const cv::Range&)
/opencv2/core/operations.hpp:2902: note: void cv::write(cv::FileStorage&, const std::string&, const cv::Mat&)
/opencv2/core/operations.hpp:2903: note: void cv::write(cv::FileStorage&, const std::string&, const cv::SparseMat&)
/opencv2/features2d/features2d.hpp:112: note: void cv::write(cv::FileStorage&, const std::string&, const std::vector<cv::KeyPoint, std::allocator<cv::KeyPoint> >&)

在我看来,/opencv2/features2d/features2d.hpp 中的原型(prototype)非常匹配。有什么建议吗?

最佳答案

如果链接器说“对 undefined reference ”,则编译步骤已经完成,这意味着编译器接受您的函数是有效的。

尝试链接所有 opencv 库,看看是否会改变结果。还要检查您使用的 header 是否与您尝试链接到的库具有相同的版本。

关于c++ - OpenCV 未定义引用(带 vector 的 FileStorage<KeyPoint>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296203/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com