使用bool数组时出现openmp错误

时间:2014-02-26 20:13:01

标签: c++ multithreading multiprocessing openmp

这是我得到的错误

Error   1   error C3028: 'CAlgo::m_CandEnable' : 
only a variable or static data member can be used in a data-sharing clause

bool m_CandEnable[ALGO_NUM_CANDIDATE];

这是使用

的编译指示
    #pragma omp parallel for schedule(static)  default(shared) firstprivate(nbr_SAD_RES_index_BNLM_PATCH_LOC_Y_plus_k_offset_BNLM_PATCH_LOC_X, candLocX_index_i, candLocY_index_i,\
                                                    cand_pixel_value, patch_pixel_value, nbr_SAD_RES_candLocY_index_iplus_k_offset_candLocX_index_i,\
                                                    exit_loop_sad_max, fast_SAD_index_i, candLocY,candLocX, i ,j , k)

该变量被声明为私有。共享

的错误相同

1 个答案:

答案 0 :(得分:0)

看来,你已经在私有语句中声明了变量exit_loop_sad_max两次。也许这会导致错误?

您是否为m_CandEnable数组声明了其他语句(例如threadprivate)?您是否在循环中的关键部分访问此数组?

请提供更多代码,否则我们只能猜测。

相关问题