我在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”工具将报告您看到的错误。
要停止显示这些内容,请转到“错误列表”窗口,然后选择“仅构建”选项:
可以按照answer to your recent question中的说明禁用C26812
警告消息。
关于c++ - Visual Studio 2019中的GDAL库头文件错误和警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59676077/