我想使用 Visual Studio 2019 构建 GDAL。但我在尝试构建时不断遇到错误。
我使用的电脑是Acer Aspire f 15 F5573G-72CP, CPU是i7 7500U 2.7GHz,RAM是16GB,操作系统是Windows 10 64位
我采取的步骤是:
下载 Visual Studio Community,包括 .NET 桌面开发、通用 Windows 平台开发、C++ 桌面开发和 Node.js 开发。
使用 git for windows 中的 GIT BASH 来拉取存储库 https://github.com/OSGeo/GDAL.git 并将其定位到 c:/gdal
在c:/gdal/GDAL/nmake.opt:
3.a.将第 42 行更改为
Line 42: MSVC_VER=1926
3.b.我取消了第 260 行的注释:
Line 259: # PROJ stuff (required dependency: PROJ >= 6)
Line 260: PROJ_INCLUDE = -Id:\install-proj\local\include
3.c.未注释的第 213 行:
Line 213: WIN64=YES
还拉取了存储库:https://github.com/OSGeo/PROJ.git位于c:/proj/PROJ
使用 Windows Powershell,
cd c:/gdal/gdal
-> generate_vcxproj.bat 16.0 64 gdal_vs2019
输出以下内容:
PS C:\gdal\gdal> .\generate_vcxproj.bat 16.0 64 gdal_vs2019
The system cannot find the path specified.
Generating:
"C:\gdal\gdal\gdal_vs2019.vcxproj"
"C:\gdal\gdal\gdal_vs2019.vcxproj.user"
"C:\gdal\gdal\gdal_vs2019.vcxproj.filters"
"C:\gdal\autotest\cpp\gdal_vs2019_test.vcxproj"
"C:\gdal\autotest\cpp\gdal_vs2019_test.vcxproj.user"
"C:\gdal\autotest\cpp\gdal_vs2019_test.vcxproj.filters"
This might take a little while...
Projects done!
Launch Visual Studio IDE
* Open project "C:\gdal\gdal\gdal_vs2019.vcxproj"
* Add project "C:\gdal\autotest\cpp\gdal_vs2019_test.vcxproj"
* Configure Build Dependencies to build the main project before the test project.
* Save solution in .sln file
Done!
PS C:\gdal\gdal>
Severity Code Description Project File Line Suppression State
Error U1077 'call' : return code '0x1' gdal_vs2019 C:\gdal\gdal\NMAKE 1
Severity Code Description Project File Line Suppression State
Error U1077 '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\nmake.EXE"' : return code '0x2' gdal_vs2019 C:\gdal\gdal\NMAKE 1
Severity Code Description Project File Line Suppression State
Error MSB3073 The command "chcp 65001 >NUL && nmake -f makefile.vc MSVC_VER=1926 WIN64=1 DEBUG=1 WITH_PDB=1" exited with code 2. gdal_vs2019 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets 46
“输出”选项卡显示:
1>------ Build started: Project: gdal_vs2019, Configuration: Debug x64 ------
1>
1>Microsoft (R) Program Maintenance Utility Version 14.26.28806.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> cd port
1> nmake /nologo /f makefile.vc
1> call prev_dllbuild.bat
1>The system cannot find the path specified.
1>
1>C:\gdal\gdal\port>IF NOT EXIST dllbuild.prev (ECHO 1 ) 1>dllbuild.prev
1>
1>C:\gdal\gdal\port>SET /P PREV_DLLBUILD= 0<dllbuild.prev
1>
1>C:\gdal\gdal\port>IF NOT "1" == "1" (ECHO 1 ) 1>dllbuild.prev
1>NMAKE : fatal error U1077: 'call' : return code '0x1'
1>Stop.
1>NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\nmake.EXE"' : return code '0x2'
1>Stop.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: The command "chcp 65001 >NUL && nmake -f makefile.vc MSVC_VER=1926 WIN64=1 DEBUG=1 WITH_PDB=1" exited with code 2.
1>Done building project "gdal_vs2019.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我应该如何解决这些错误才能成功构建 GDAL?
这有点晚了,但是您是否尝试过以下操作:
您也可以尝试清洁:
nmake /f makefile.vc clean
nmake /f makefile.vc
最后,您可以尝试在不同的计算机上进行构建。
听着,这就是提问的方式:清晰、精确的步骤、详细的描述。非常有帮助!
当我不使用 GIT 存储库时,我可以编译。相反,我按照 Windows 安装文档下载了 PROJ:
在 Windows 上安装 PROJ 最简单的方法是使用
_ 软件分发。 OSGeo4W 可以轻松访问许多流行的 开源地理空间软件包。安装后您可以 使用 OSGeo4W shell 中的 PROJ。要安装 PROJ,请执行以下操作:OSGeo4W
注意:: 如果您已经通过 OSGeo4W 在计算机上安装了软件,或者如果 你已经在你的电脑上安装了QGIS,很可能PROJ是 已安装。在开始菜单中输入“OSGeo4W Shell”并检查是否 这给出了匹配。
- 下载
或32 bit
安装程序。64 bit
- 运行 OSGeo4W 安装程序。
- 选择“高级安装”并按下一步。
- 选择“从互联网安装”并按下一步。
- 选择安装目录。在大多数情况下,默认建议就可以了。按下一步。
- 选择“本地包目录”。在大多数情况下,默认建议就可以了。按下一步。
- 选择“直接连接”并按下一步。
- 选择 download.osgeo.org 服务器并按下一步。
- 在“Commandline_Utilities”下找到“proj”,然后单击“New”栏中的包,直到出现您要安装的版本。
- 按下一步安装 PROJ。
我从 osgeo4W 下载了安装程序。因为我需要 32 位和 64 位版本,所以我下载了
osgeo4w-setup-x86-v1.exe
和 osgeo4w-setup-x86_64-v1.exe
。从 osgeo 下载大的 proj 文件时,下载在 25% 后卡住了,所以我选择了 oslandia 下载链接。这最初会失败(至少对我来说),但重新启动后它可能会完成。
在下载包选择中单击“跳过”徽标以选择二进制文件(“B”)和源文件(“S”)。我选择了两者。我下载了“proj”、“proj-dev”和“proj-dev-data”,不确定实际需要什么。当它要求包含依赖项(很多)时,我选择包含它们。
在 nmake.opt (你的步骤 3)中,我用于 32 位:
PROJ_INCLUDE = -IC:\OSGeo4W\include
PROJ_LIBRARY = C:\OSGeo4W\lib\proj.lib
对于 64 位:
PROJ_INCLUDE = -IC:\OSGeo4W64\include
PROJ_LIBRARY = C:\OSGeo4W64\lib\proj.lib
为了运行
generate_vcxproj.bat
,我使用了 Visual Studio 2022 x86 和 x64 本机工具命令提示符。在我更改的bat文件中:
if "%_vcver_%"=="16.0" (
set _clver_=1926
set _vstoolset_=v143
在nmake.opt中:
MSVC_VER=1929
我分别运行 64 位和 32 位的 bat:
generate_vcxproj.bat 16.0 64 gdal_vs2022
generate_vcxproj.bat 16.0 32 gdal_vs2022_x86
完成此步骤后,我可以在 Visual Studio 中打开 vcxproj 文件并编译库。我在我的项目中使用了生成的 gdal_i.lib 和随附的 gdal303.dll。