如何运行OpenACC+;在Windows中使用PGI的OpenCV?

如何运行OpenACC+;在Windows中使用PGI的OpenCV?,opencv,openacc,pgi,Opencv,Openacc,Pgi,我尝试运行以下代码: #include <chrono> #include <omp.h> #include <vector> #include <iostream> #include <algorithm> #include <string> #include <opencv2/opencv.hpp> #include <opencv2/core/core.hpp> using namespac

我尝试运行以下代码:

#include <chrono>
#include <omp.h>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>

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

using namespace std;

int main()
{
    std::string imgstr = "input.bmp";
    cv::Mat imgmat = cv::imread(imgstr, cv::IMREAD_GRAYSCALE);

    imgmat.convertTo(imgmat, CV_64FC1, 1.0 / 255.0);

    double st = omp_get_wtime();

    int i, j;
    double res = 0.0;
    #pragma acc parallel loop
    for (i =0; i <= 10; i++) {
        for (j =0; j <=10; j++) {
            res =res+ imgmat.at<double>(i, j);
        }
    }

    double runtime = omp_get_wtime() - st;
    printf("\n total: %f s\n", runtime);
}
但是,上面的代码在VisualStudio中编译并运行成功,而不使用OpenACC


有人能帮忙吗?

您很可能需要使用命令行上的“-I/path/to/openvc/include”标志包含头文件的路径。您还需要包含库路径(通过“-L/path/to/opencv/lib”)以便它可以找到库


虽然“PGCC”是C编译器,但是在代码中使用C++头文件和C++构造时,会有额外的问题。当前的PGI版本不支持Windows上的C++ C++。我必须使用过时版本的PGI或其他编译器?我还尝试了

-I/C:/opencv/build/include/opencv2-I/C:/opencv/build/include-I/C:/opencv/build/include/opencv-L/C:/opencv/build/x64/vc15/lib
,但仍然得到了与以前一样的
找不到include文件opencv2/opencv.hpp
错误,如果您现在需要使用Linux您需要在C++中支持PGI OpenACC。一个NVIDIA HPC C++编译器(PGI的继承者)正在开发中,但暂时不可用。我更喜欢使用Windows。除了PGI之外,还有其他的编译器可以在C++中工作吗?“/c://”是一个不正确的路径前缀名称。请尝试DOS路径“-IC:/”,或者可能是cygwin路径,例如“-I/c/”。看起来您混合了两种不同的样式路径
can't find include file opencv2/opencv.hpp