c++ - Visual Studio 2019中的GDAL库头文件错误和警告

标签 c++ visual-studio header-files gdal

我在Visual Studio 2019社区版本中使用GDAL,并且在下面的官方网站中使用了示例代码,程序可以编译,运行和输出很好,但是我得到了错误和警告的列表,我没有知道我应该忽略它们还是对头文件进行一些更改,之前有人遇到过这样的问题吗?希望有人能给我一些建议,谢谢。
样例代码:

/*gdal_test*/
#include <iostream>  
#include <gdal_priv.h>
#include <cpl_conv.h> 

using namespace std;

int main()
{
    const char* pszFile;
    GDALAllRegister();
    pszFile = "E:/190807/mosaic_data/S2_1_170215.tif";
    GDALDataset* poDataset = (GDALDataset*)GDALOpen(pszFile, GA_ReadOnly);
    GDALRasterBand* poBand = poDataset->GetRasterBand(1);
    int xsize = poBand->GetXSize();
    int ysize = poBand->GetYSize();
    cout << xsize << endl;
    cout << ysize << endl;

    system("pause");
    return 0;
}

错误列表主要包含以下三个主要问题:
Error (active)  E0065   expected a ';'  gdaltest    C:\MSVC_Library\GDAL\warmerda\bld\include   C:\MSVC_Library\GDAL\warmerda\bld\include\ogr_geometry.h    387     

Error (active)  E1455   member function declared with 'override' does not override a base class member  gdaltest    C:\MSVC_Library\GDAL\warmerda\bld\include   C:\MSVC_Library\GDAL\warmerda\bld\include\ogr_geometry.h    1139        

Warning C26812  The enum type 'CPLErr' is unscoped. Prefer 'enum class' over 'enum' (Enum.3).   gdaltest    C:\MSVC_Library\GDAL\warmerda\bld\include   C:\MSVC_Library\GDAL\warmerda\bld\include\cpl_error.h   244     

我应该更改头文件中的语法吗?会改变它的作用吗?还是我应该忽略这些错误?

最佳答案

您声明您的程序“可以正确编译,运行并输出”,因此,Visual Studio中的“Intellisense”工具将报告您看到的错误

要停止显示这些内容,请转到“错误列表”窗口,然后选择“仅构建”选项:

enter image description here

可以按照answer to your recent question中的说明禁用C26812 警告消息。

关于c++ - Visual Studio 2019中的GDAL库头文件错误和警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59676077/

相关文章:

c++ - 优先级队列成员函数不工作

c++ - 如何在 QTextEdit 中调整图像大小?

c# - 内置比较叠加的 Visual Studio

visual-studio - 如何在没有 Visual Studio 的情况下对 DirectX 进行编程

c++ - QGraphicsRectItem 的几何形状

c++ - CMake:如何确定可执行文件所需的所有 .DLL/.SO 文件?

visual-studio - VS2013 和 Newtonsoft.Json 3.5.0.2

c - 混合 .c 和 .h 文件

c - 在C中初始化结构内部的数组

c++ - 错误 C1010 : unexpected end of file while looking for precompiled header. 您是否忘记将 '#include "stdafx.h"' 添加到您的源代码中?