【发布时间】:2023-07-19 09:16:02
【问题描述】:
我一直在尝试构建一个 cmake c++ 项目。更具体地说,我正在尝试在这个项目中使用 gdal 库。在 CMakeLists.txt 中它说 find_library(GDAL gdal) 在做了一些研究后我发现,Visual Studio 可以默认打开 cmake 文件,如该线程中所述:https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019。
此外,一旦我用vcpkg 正确设置了 gdal 库,visual studio 也应该自动包含它。我已经下载了库的 x64-windows 版本 (vcpkg install gdal:x64-windows) 以便构建正确的架构,并通过 vcpkg integrate install 在用户范围内提供它。
经过反复试验,现在一切正常,相应地包含工具链并自动找到库,从而产生如下配置:
但是,当尝试包含头文件(或其他任何内容;参见代码 sn-p)时,Visual Studio 似乎没有正确链接库,因为它会导致错误消息:cannot open source file "gdal/gdal.h".
#include <gdal/ogrsf_frmts.h>
#include <gdal/gdal.h>
#include <gdal>
我应该在哪里进一步调查?
【问题讨论】:
-
我认为你的问题是你如何使用 CMake 工具链文件。
vcpkg integrate install对基于 CMake 的项目没有帮助。 -
@drescherjm 我确实这么认为,来自docs.microsoft.com/en-us/cpp/build/vcpkg?view=vs-2019: > 运行 vcpkg 集成安装以配置 Visual Studio 以基于每个用户定位所有 vcpkg 头文件和二进制文件。无需手动编辑 VC++ 目录路径。如果您有多个克隆,则从中运行此命令的克隆将成为新的默认位置。 > 现在,您只需键入文件夹/标题即可#include 标题,并且自动完成功能会为您提供帮助。链接到库或添加项目引用不需要额外的步骤。
-
我们可以看看你的
CMakeLists.txt吗? -
我在工作中的几个项目中使用过
vcpkg。我根本不使用vcpkg integrate install,因为我的项目基于CMake,并且CMake 处理包含路径。 -
编辑:图片代替纯文本...imgur.com/a/CZudsGv
标签: c++ visual-studio cmake vcpkg