问题描述
在使用cmake编译opencv4.1之后,用vs2015对得到的项目进行解决方案的生成,报告错误:“错误 C2131 表达式的计算结果不是常数”。
解决方法
在错误列表中找到该错误行(一般不止一个,随便找一个就行),双击,会自动定位到\gapi\own\mat.hpp
文件中的一行,如下:
#define TABLE_ENTRY(type) {assign_row<type, 1>, assign_row<type, 2>, assign_row<type, 3>, assign_row<type, 4>}
static constexpr func_p_t func_tbl[][max_channels] = {
TABLE_ENTRY(uchar),
TABLE_ENTRY(schar),
TABLE_ENTRY(ushort),
TABLE_ENTRY(short),
TABLE_ENTRY(int),
TABLE_ENTRY(float),
TABLE_ENTRY(double)
};
我们需要将static constexpr
中的constexpr改为const,再重新编译opencv_world项目以及opencv_world_AVX、opencv_world_AVX2、opencv_world_SSE4_1等项目,来回多试几次。