You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译GDAL 3.7.2二进制文件失败求助:LNK1104及PROJ_DIR问题

解决GDAL 3.7.2源码编译时PROJ依赖配置错误的问题

核心问题分析

你遇到的LNK1104找不到lib.obj的错误,根源是PROJ_DIR路径设置错误,导致CMake误将PROJ的Library目录当作目标文件路径;同时PROJ_DIR被标记为NOTFOUND,说明CMake无法识别你指定的路径为有效的PROJ安装目录。

分步解决方案

1. 修正PROJ_DIR的正确路径

conda安装的PROJ,其有效根目录是...\anaconda3\pkgs\proj-8.2.1-h5ed7ab8_0\Library,而非pkgs下的proj文件夹。这个Library目录下包含CMake识别PROJ所需的include、lib子目录及必要配置文件。

2. 重新配置CMake

  • 打开CMake GUI,点击Clear Cache清空之前的错误配置
  • 重新指定GDAL源码目录和二进制编译目录(target)
  • 在变量列表中找到PROJ_DIR,设置为上述的Library路径
  • 点击Configure,检查以下变量是否正确赋值(无NOTFOUND):
    • PROJ_INCLUDE_DIR:指向...\Library\include
    • PROJ_LIBRARY:指向...\Library\lib\proj.lib(Windows平台)
  • 确认所有PROJ相关变量正常后,点击Generate

3. 验证PROJ安装完整性

检查PROJ的Library/lib目录下是否存在proj.lib文件:

  • 如果不存在,说明conda安装的PROJ包不完整,执行以下命令重新安装:
    conda remove proj
    conda install -c conda-forge proj --force-reinstall
    
  • 若仍有问题,建议直接下载PROJ官方预编译二进制包,解压后将PROJ_DIR指向解压后的根目录,CMake会更易识别。

4. 正确构建GDAL

  • 用对应版本的VS打开target目录下的解决方案
  • 确保VS的平台(x86/x64)与PROJ的编译平台一致
  • 右键点击INSTALL目标,选择Build,编译完成后,生成的DLL、lib和头文件会自动输出到target\install目录,方便后续C++项目引用。

错误信息回顾

LNK1104 cannot open file '...\anaconda3\pkgs\proj-8.2.1-h5ed7ab8_0\Library\lib.obj' gdal "...\gdal-3.7.2\target\LINK"

该错误是CMake错误解析PROJ路径导致的,修正PROJ_DIR后即可解决。

内容的提问来源于stack exchange,提问作者Chipmunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:52:27