Error comes out when code is compiled with OpenACC


When I use nvc++ to compile code file with openACC, I got the error information:

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;

int main(){

 cv::Mat srcImg=cv::imread("/home/testSpace/images/blue-mountains.jpg");

 cout<<"The file is not loaded or does not exist"<<endl;
 return -1;


 cout<<"Matrix"<<srcImg.rows<<" "<<srcImg.cols<<endl;

Mat duplicate(srcImg.rows,srcImg.cols, CV_8UC1,Scalar::all(255) );

int i,j=0;

#pragma acc enter data create(srcImg[0:srcImg.rows][0:srcImg.cols])

 #pragma acc update device(srcImg[:srcImg.rows][:srcImg.cols])
 #pragma acc parallel loop 
   #pragma acc loop



#pragma acc data copyout(srcImg[:srcImg.rows][:srcImg.cols])



// return 0;


40, Generating enter data create(srcImg)
45, Generating update device(srcImg)
Generating NVIDIA GPU code
45, #pragma acc loop gang /* blockIdx.x /
47, #pragma acc loop vector(128) /
threadIdx.x */
45, Generating implicit copyin(srcImg.step.p[:1],srcImg) [if not already present]
47, Loop is parallelizable
59, Generating copyout(srcImg) [if not already present]
T1 & cv::Mat::at(int, int):
1, include “opencv.hpp”
52, include “core.hpp”
59, include “mat.hpp”
3724, include “mat.inl.hpp”
1140, Generating implicit acc routine seq
Generating acc routine seq
Generating NVIDIA GPU code
cvflann::anyimpl::big_any_policy<std::__cxx11::basic_string<char, std::char_traits, std::allocator>>::print(std::basic_ostream<char, std::char_traits>&, void *const *):
1, include “opencv.hpp”
std::basic_ostream<T1, T2> & std::endl<char, std::char_traits>(std::basic_ostream<T1, T2> &):
1, include “opencv.hpp”
52, include “core.hpp”

My question is 1)why I got error information ’ Generating copyout(srcImg) [if not already present]', and 2) the result is Matrix810 1440 libgomp: TODO.

Moved to the HPC Compilers forum

Duplicate of Error Generating copyout(srcImg) [if not already present]', and 2)