fatal error C1001:编译器发生内部错误(编译器文件“msc1.cppp”,第1518行)

一、问题发生环境

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>)

 记得点赞收藏,谨防丢失哦!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值