Under Ubuntu 12.04 I have got from linker "undefined reference to `cv::Mat::zeros(int, int const*, int)'"

for **2.3** from repo and for **2.4.3** compiled from source.

And indeed if I go to the lib directory and ask for list of symbols from object files I can see

~/src/OpenCV-2.4.3/build/lib$ **nm** ./libopencv_core.so | c++filt | grep zeros

000000000015d690 T cv::Mat::zeros(cv::Size_<int>, int)

000000000015d460 T cv::Mat::zeros(int, int, int)

I.e. there is no **cv::Mat::zeros(int , const int* , int)**

it is same story for cv::Mat::ones(int , const int* , int)

Any suggestion how to get this into lib?

**Update**

file core.hpp, lines

1766 static MatExpr zeros(int rows, int cols);

1767 static MatExpr zeros(Size size);

**1768 static MatExpr zeros(int _ndims, const int* _sizes);**

where can I find implementation of last function? I can find first two, but not the last. **What is a point to include function declaration in class if there is no implementation for it?**

What is a level of support for N dim Mat in the light of line

**91 typedef Mat MatND;**
?

~~ ~~000000000015d460 T cv::Mat::zeros(int, int, int)

I.e. there is no **cv::Mat::zeros(int , const int* , int)**

it is same story for cv::Mat::ones(int , const int* , int)