一、问题发生环境
1、Windows 10 企业版
2、Visual Studio2017 企业版
3、编译源码exiv2-main源码
二、问题

1>E:\worspace_Gis\qgis-3.10.0\dependency\exiv2-main\src\tiffimage_int.cpp(1793): fatal error C1001: 编译器中发生内部错误。
1>(编译器文件“msc1.cpp”,第 1518 行)
1> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。
三、错误发生原因
根据Visual Studio2017输出的提示可以知道,是tiffimage_int.cpp的1793行附近的代码存在问题。笔者经过反复检查发现是1793行附近的代码中:EXV_COMPLEX_BINARY_ARRY 宏展开错误。
四、修改代码解决问题
1、头文件修改(tiffcomposite_int.hpp)
//template<const ArraySet* arraySet, int N, CfgSelFct cfgSelFct>
template<int N, const ArraySet (&arraySet)[N], CfgSelFct cfgSelFct>
TiffComponent::UniquePtr newTiffBinaryArray2(uint16_t tag, IfdId group)
{
return TiffComponent::UniquePtr(
new TiffBinaryArray(tag, group, arraySet, N, cfgSelFct));
}

2、源文件修改(tiffimage_int.cpp)
#define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2<EXV_COUNTOF(arraySet), arraySet, cfgSelFct>)
//#define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2<arraySet, EXV_COUNTOF(arraySet), cfgSelFct>)

点赞收藏+关注,谨防丢失哦!!!
在Windows 10上使用Visual Studio 2017编译exiv2-main源码时遇到C1001内部编译器错误。问题源于tiffimage_int.cpp的1793行附近,具体为EXV_COMPLEX_BINARY_ARRY宏展开错误。通过修改头文件tiffcomposite_int.hpp和源文件tiffimage_int.cpp中的宏定义,解决了编译问题。修改包括调整模板参数和宏定义,使得编译成功。
8736

被折叠的 条评论
为什么被折叠?



