CMake中find_package后DLL复制及路径配置相关问题
CMake适配Open3D相关问题解答
一、包路径查找的常规处理方式
- 环境变量指定:通过设置
<PackageName>_DIR格式的系统环境变量(比如你设置的OPEN3D_DIR),CMake的find_package会自动识别这类变量。注意变量需指向包含包的Config.cmake或<PackageName>-config.cmake文件的目录(Open3D的配置文件在<OPEN3D-root>/CMake下,这就是脚本中OPEN3D_DIR指向该子目录的原因)。 - 手动指定路径:调用
find_package时通过PATHS参数强制指定路径,示例:find_package(OPEN3D REQUIRED PATHS "你的Open3D根目录/CMake") - 利用
CMAKE_PREFIX_PATH:将Open3D根目录添加到CMAKE_PREFIX_PATH变量中,CMake会自动在该路径下搜索包的配置文件,示例:set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};你的Open3D根目录" CACHE PATH "添加Open3D路径")
二、CMAKE_INSTALL_PREFIX的取值来源
- 默认值:CMake原生默认值在Windows下为
C:/Program Files/<项目名>,但Visual Studio 2022的CMake集成会自动覆盖该值,默认设为<project-root>/out/install/<配置类型>(比如你遇到的x64-debug),用于实现项目的隔离构建与安装。 - 修改方式:
- 在CMakeLists.txt中强制指定:
set(CMAKE_INSTALL_PREFIX "你的自定义安装路径" CACHE PATH "项目安装路径") - 在VS的CMake设置界面修改:点击顶部菜单栏「项目」→「CMake设置」,选择对应配置后,在「CMake变量和缓存」区域搜索并修改
CMAKE_INSTALL_PREFIX的值。
- 在CMakeLists.txt中强制指定:
三、设置CMake GUI中配置的变量
- Visual Studio 2022图形化设置:
- 打开CMake项目后,点击「项目」→「CMake设置」。
- 选择目标配置(如x64-Debug)。
- 在「CMake变量和缓存」区域搜索目标变量(如
OPEN3D_DIR),输入对应值后保存,CMake会自动重新配置项目。
- CMakeLists.txt预设置:使用
set(<变量名> "值" CACHE <类型> "描述")格式,示例:set(OPEN3D_DIR "你的Open3D根目录/CMake" CACHE PATH "Open3D配置文件路径") - 命令行参数设置:执行
cmake命令时通过-D<变量名>=<值>传递,示例:cmake .. -G "Visual Studio 17 2022" -A x64 -DOPEN3D_DIR="你的Open3D根目录/CMake" -DCMAKE_INSTALL_PREFIX="你的自定义路径"
内容的提问来源于stack exchange,提问作者Roland Deschain
相关产品推荐
相关产品推荐

