C++ 无法使用“生成GDAL Visual Studio项目”;生成“vcxproj.bat”;

C++ 无法使用“生成GDAL Visual Studio项目”;生成“vcxproj.bat”;,c++,visual-studio-2017,gdal,C++,Visual Studio 2017,Gdal,我需要将gdAL库链接到C++项目。 我使用此处的说明: 从下载gdal231.zip。打开包装 (此步骤可以省略-结果相同)通过在文件的最顶端添加以下内容来编辑nmake.opt: MSVC_VER=1910 WIN64=1 (不知道是否正确;没有全面的指南) 运行win cmd,键入“generate_vcxproj.bat 15.0 64 gdal_vs2017”,等待完成 使用MSVS社区15.8.4打开gdal_vs2017.vcxproj。构建解决方案 生成失败,出现“致命错误C1

我需要将gdAL库链接到C++项目。

我使用此处的说明:

  • 从下载gdal231.zip。打开包装
  • (此步骤可以省略-结果相同)通过在文件的最顶端添加以下内容来编辑nmake.opt:

    MSVC_VER=1910

    WIN64=1

  • (不知道是否正确;没有全面的指南)

  • 运行win cmd,键入“generate_vcxproj.bat 15.0 64 gdal_vs2017”,等待完成
  • 使用MSVS社区15.8.4打开gdal_vs2017.vcxproj。构建解决方案
  • 生成失败,出现“致命错误C1083:无法打开包含文件:'stdio.h':没有此类文件或目录”

    项目设置看起来很奇怪:

    “VC++目录”似乎正常,但“库目录”中的$(VC_SourcePath)除外:


    有什么问题吗?

    为了构建GDAL one,不需要Visual Studio项目。不知道“generatevcxproj”脚本有什么问题-它就是不起作用。但还有另一种方法

  • 打开gdal231.zip的包装
  • 启动“针对VS 2017的x64本机工具命令提示符”(或适合您需要的VS命令提示符的任何版本)。cd至“gdal-2.3.1\”目录
  • 打开nmake.opt文件。在它的开头,有一些关于makefile.vc使用的提示。从那里挑选一些论点。我选择了x64版本,所以我对nmake的调用是这样的:“nmake-f makefile.vc MSVC\u VER=1910 WIN64=1”。(1910是Visual Studio 2017的一个版本)
  • 切换到“本机工具命令提示符”并在那里键入“nmake-f makefile.vc MSVC\u VER=1910 WIN64=1”。进入
  • 完成后,键入“nmake-f makefile.vc MSVC\u VER=1910 WIN64=1 install”并按Enter键
  • 完成后,键入“nmake-f makefile.vc MSVC\u VER=1910 WIN64=1 devinstall”并按Enter键
  • 完成了。该库位于C:\warmerda\bld\文件夹中

  • 我在使用VS2017社区版构建时遇到了同样的问题。我能够使用VS2015社区版构建良好的应用程序


    底线:运行.bat时,使用2015选项。

    使用以下信息修改generate_vcxproj.bat文件:

    我将第55-70行修改为:

    if "%_vcver_%"=="16.2" (
        set _clver_=1922
        set _vstoolset_=v1422
    ) else if "%_vcver_%"=="15.0" (
        set _clver_=1910
        set _vstoolset_=v141
    ) else if "%_vcver_%"=="14.0" (
        set _clver_=1900
        set _vstoolset_=v140
    ) else ( if "%_vcver_%"=="12.0" (
        set _clver_=1800
        set _vstoolset_=v120
    ) else (
        echo Wrong value for parameter 1. See usage:
        goto :usage
    ))
    

    你应该检查VC++目录下的include目录和lib目录。VC目录与默认创建的“Hello World”项目中的目录基本相同。您应该在VC程序/工具下找到一个所谓的开发人员命令提示符,或者类似的东西:尝试从该命令提示符启动构建。您的意思是,按照我上面描述的做,但使用“x64原生工具VS 2017命令提示符”而不是win cmd(在步骤3中)?这没有区别。