Clion下使用Vcpkg安装GDAL(还有部分错误解决办法)

Clion下使用Vcpkg安装GDAL(还有部分错误解决办法,其他库可能也适用)

写在前面

​ 此贴用来记录我在Clion中使用Vcpkg安装GDAL时遇到的各种问题,希望能够帮到你。

配置CMake

​ 如果你报了类似的错:

CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: D:/Software/Inviwo/vcpkg/downloads/tools/msys2/09133458fed80fcb/usr/bin/make.exe -j 9 --trace -f Makefile all
    Working Directory: D:/Software/Inviwo/vcpkg/buildtrees/libiconv/x64-windows-dbg/
    See logs for more information:
      D:\Software\Inviwo\vcpkg\buildtrees\libiconv\build-x64-windows-dbg-out.log
      D:\Software\Inviwo\vcpkg\buildtrees\libiconv\build-x64-windows-dbg-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_make.cmake:136 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_make.cmake:2 (vcpkg_build_make)
  buildtrees/versioning_/versions/libiconv/4226589d5d658f4d96df83f8539de54dc57a5996/portfile.cmake:39 (vcpkg_install_make)
  scripts/ports.cmake:170 (include)

那么就是路径的问题了;

​ 首先得自己下载一个CMake,因为在后面Vcpkg编译GDAL的时候会有一个Bug,不能使用Clion自带的CMake,原因是Clion的安装路径中带有空格,我去Vcpkg的GitHub上找问题,开发团队说是CMake的安装路径中不能有空格,我的Clion安装路径 D:\dev\intellij\clion\CLion 2023.3.3\ ,太坑了;

CMake下载链接 : Download CMake 找一个适合的版本下载,并安装,记住安装位置;

​ 我除了自己安装了CMake以外,还安装了MinGW,给个下载地址吧:Releases · niXman/mingw-builds-binaries (github.com) 在GitHub上,

在这里插入图片描述

​ 记得下 x86_64 win32格式的,我这个是v11版本,你们可以根据喜好的版本选择格式类似的就行了,这是一个二进制文件,是编译好的,直接解压就能用了;

​ 安装完MinGw、CMake后,到Clion中进行配置,对了,我的Clion是装了中文包的:

在这里插入图片描述

其他不用管,就改CMake、MinGW就行;

安装Vcpkg

​ Clion新建项目后在窗口的最底下应该有一个Vcpkg的选项:

在这里插入图片描述

​ 点击它,再点上面的+号:

在这里插入图片描述

​ 会弹出这么一个对话框:

在这里插入图片描述

记得一定要勾选上;确定后会从GitHub上拉取,这一步没有科学上网的会稍慢,耐心等待;

​ 安装完成后会出现:

在这里插入图片描述

​ 搜索gdal:

在这里插入图片描述

关键的一步来了,在三元组这里一定要选择 x64-windows,不能让vcpkg决定,不然可能会下载 x64-mingw-dynamic版本,那么后续就算成功安装,也无法在CMakeLists里面引入

在这里插入图片描述

​ 我之前就是让Vcpkg决定,然后在CMakeLists中一直无法引入GDAL,后来在CMake的 VCPKG_TARGET_TRIPLET参数中发现是 x64-windows

在这里插入图片描述

​ 因为我一开始下载的三元组是 x86-mingw-dynamic我尝试过在CMakeLists中加入

set(VCPKG_TARGET_TRIPLET x64-mingw-dynamic CACHE STRING "")

来和我安装时选的三元组一样,但是不生效;总之就是要让这里的 VCPKG_TARGET_TRIPLET和三元组里面选择的一样就行了;

最后选择安装,这里的时间较长,耐心等待,只要没有停下来并且报错,就一直等,因为是上GitHub上下载源,我开启了科学上网,安装过程大约在二十分钟至四十分钟左右;
最终如果出现:
-- Performing post-build validation
Stored binaries in 1 destinations in 2.9 s.
Elapsed time to handle gdal:x64-windows: 2.6 min
gdal:x64-windows package ABI: f058557b94360b0e8cd6481205a8c62381eb7e19cfa97786cef7ab7de434dcee
Total install time: 11 min
The package GDAL provides CMake targets:

    find_package(GDAL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE GDAL::GDAL)

代表安装成功

如果出现:
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:32 (message):
      
      Failed to download file with error: 1
      If you are using a proxy, please check your proxy setting. Possible causes are:
      
      1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable
         to `https://address:port`. This is not correct, because `https://` prefix
         claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr
         , etc..) is an HTTP proxy. Try setting `http://address:port` to both
         HTTP_PROXY and HTTPS_PROXY instead.
      
      2. If you are using Windows, vcpkg will automatically use your Windows IE Proxy Settings
         set by your proxy software. See https://github.com/microsoft/vcpkg-tool/pull/77
         The value set by your proxy might be wrong, or have same `https://` prefix issue.
      
      3. Your proxy's remote server is out of service.
      
      If you've tried directly download the link, and believe this is not a temporary
      download server failure, please submit an issue at https://github.com/Microsoft/vcpkg/issues
      to report this upstream download server failure.
      

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:270 (z_vcpkg_download_distfile_show_proxy_and_fail)
  ports/libspatialite/portfile.cmake:1 (vcpkg_download_distfile)
  scripts/ports.cmake:170 (include)


error: building libspatialite:x64-windows failed with: BUILD_FAILED
Elapsed time to handle libspatialite:x64-windows: 11 min
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
  https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+libspatialite
You can submit a new issue at:
  https://github.com/microsoft/vcpkg/issues/new?title=[libspatialite]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fdev%2Fcmake%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
再点击一次安装,这里是网络的问题,重新安装不会从头再来,只会从失败的地方继续;
如果是:
command:
"D:\dev\cmake\bin\cmake.exe" -DVCPKG_ROOT_DIR=D:/dev/cmake/vcpkg -DPACKAGES_DIR=D:/dev/cmake/vcpkg/packages -DBUILDTREES_DIR=D:/dev/cmake/vcpkg/buildtrees -D_VCPKG_INSTALLED_DIR=D:/dev/cmake/vcpkg/installed -DDOWNLOADS=D:/dev/cmake/vcpkg/downloads -DVCPKG_MANIFEST_INSTALL=OFF -P "D:\dev\cmake\vcpkg\buildtrees\0.vcpkg_dep_info.cmake"
failed with the following results:
CMake Error: Error processing file: D:\dev\cmake\vcpkg\buildtrees\0.vcpkg_dep_info.cmake
e\vcpkg\buildtrees\0.vcpkg_dep_info.cmake"
failed with the following results:
CMake Error: Error processing file: D:\dev\cmake\vcpkg\buildtrees\0.vcpkg_dep_info.cmake
同样的也是重新安装;
最后

打开 CMakeLists.txt加入:

find_package(GDAL CONFIG REQUIRED)
target_link_libraries(gdal_test PRIVATE GDAL::GDAL)

就可以了;
测试:

#include <iostream>
#include "gdal.h"

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

没报错就ok;
​ 大概就是这样,如果之后遇到其他问题,我会继续更新这篇博客,如果你遇到的问题和我的不一样,请在评论区留言,我尽量帮;

<think>好的,我现在需要帮助用户了解如何配置GDAL的环境变量。根据用户提供的引用内容,我需要整合相关信息并给出清晰的步骤。首先,用户提到了三个引用,其中引用[2]和引用[3]与GDAL环境配置相关,引用[1]是关于Java环境变量配置的,可能可以作为参考。 首先,我需要确认GDAL环境变量的具体配置步骤。引用[2]提到在Clion下配置GDAL开发环境时遇到的问题,比如权限被拒绝,这可能与路径或权限有关。而引用[3]则是在Linux系统中通过修改.bashrc文件来设置环境变量,包括PATH和LD_LIBRARY_PATH。这说明在Linux下配置GDAL可能需要设置这些变量,指向GDAL安装路径。 用户的问题是关于配置GDAL环境变量的方法和步骤,可能需要分操作系统来回答。根据引用[1]中的Java配置步骤,可能Windows下的GDAL配置也需要类似地设置系统变量,比如添加GDAL的bin目录到PATH,并设置GDAL_DATA等变量。 接下来,我需要整理步骤: 对于Windows系统: 1. 安装GDAL,可能通过预编译的二进制文件或vcpkg安装。 2. 添加GDAL的bin目录到系统PATH变量,这样命令行可以找到GDAL的可执行文件。 3. 设置GDAL_DATA环境变量,指向GDAL数据文件的目录,如gdal-data。 4. 可能需要设置其他变量,如PROJ_LIB,如果GDAL依赖PROJ库的话。 对于Linux系统: 1. 使用包管理器安装GDAL或从源码编译安装。 2. 在.bashrc中添加PATH和LD_LIBRARY_PATH,将GDAL的bin和lib目录包含进去。 3. 同样设置GDAL_DATA等环境变量。 需要注意用户提到的引用[2]中提到的问题,如权限被拒绝,这可能是因为路径错误或权限不足,需要确保路径正确并且用户有访问权限。此外,引用[3]中的步骤展示了如何通过修改.bashrc来设置变量,用户需要正确导出这些变量。 可能还需要验证GDAL安装是否成功,通过运行gdalinfo --version命令检查是否输出正确版本。 现在需要将这些步骤结构化,确保用户能按照步骤操作,同时引用正确的参考资料。需要区分不同操作系统的配置方法,并指出常见问题及解决方法,比如权限问题或路径错误。</think>### 配置GDAL环境变量的方法及步骤 配置GDAL环境变量需根据操作系统类型(Windows/Linux)采取不同方法,以下是具体步骤: --- #### **Windows系统配置步骤** 1. **安装GDAL** - 若通过预编译二进制文件安装,解压到指定目录(如`D:\GDAL`)。 - 若通过`vcpkg`安装,需确保安装路径正确且无权限问题[^2]。 2. **配置系统环境变量** - 右键“此电脑” → “属性” → “高级系统设置” → “环境变量”。 - **添加GDAL路径到PATH**: 在“系统变量”中找到`Path`,添加GDAL的`bin`目录(如`D:\GDAL\bin`)[^1]。 - **设置GDAL_DATA变量**(可选): 若需要GDAL数据支持(如坐标系文件),新建变量`GDAL_DATA`,值为数据目录路径(如`D:\GDAL\gdal-data`)。 3. **验证配置** 打开命令提示符,输入`gdalinfo --version`,若显示版本号则配置成功。 --- #### **Linux系统配置步骤** 1. **安装GDAL** - 使用包管理器安装(如`apt install gdal-bin`)或源码编译安装。 2. **修改环境变量** - 编辑用户配置文件(如`.bashrc`或`.zshrc`): ```bash vi ~/.bashrc ``` - 添加以下内容(假设GDAL安装路径为`/usr/local`): ```bash export PATH=$PATH:/usr/local/bin # 添加GDAL可执行文件路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib # 添加GDAL库路径 export GDAL_DATA=/usr/local/share/gdal # 设置GDAL数据路径(按需) ``` - 使配置生效: ```bash source ~/.bashrc ``` - 通过`echo $PATH`检查路径是否生效[^3]。 3. **验证配置** 终端输入`gdalinfo --version`,若显示版本号则成功。 --- #### **常见问题及解决** - **权限问题**:若提示`Permission denied`,检查GDAL相关目录权限(如`chmod -R 755 /path/to/gdal`)。 - **路径错误**:确保环境变量中的路径与实际安装路径一致,避免拼写错误。 - **依赖缺失**:GDAL可能依赖`PROJ`或`GEOS`库,需一并安装并配置环境变量(如`export PROJ_LIB=/path/to/proj`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值