我无法获得编译的cv :: Mat_构造函数来查看用户分配的数据。这是一个玩具示例,它会在执行时崩溃,但足以证明编译错误。
#include <opencv2/core/core.hpp>
using namespace cv;
void f(){
int size_[] = {1, 2, 3};
int dimension_ = 3;
float* data = nullptr;
size_t bytes = 0;
Mat_<float> image_mat(dimension_, size_, data, &bytes);
}
使用
编译上面的代码nick@hawaii:~/opencv-undefined-ref$ clang++ main.cpp -std=c++11 -l opencv_core
给我
/tmp/main-15f5e8.o: In function `f()':
main.cpp:(.text+0x4c): undefined reference to `cv::Mat_<float>::Mat_(int, int const*, float*, unsigned long const*)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
通过opencv2/core/mat.hpp
查看,我也找不到此构造函数的模板定义......它是否被遗忘了?或者我错过了什么?我应该包含另一个标题吗?
这是在Ubuntu 14.04 LTS,opencv-core-dev版本:2.4.8 + dfsg1-2ubuntu1