CMake报错:INSTALL DESTINATION禁绝对路径,如何改CMakeLists.txt?
解决CMake打包WIX安装器时「ABSOLUTE path INSTALL DESTINATION forbidden」错误
问题场景
学习CMake教程第9步「打包安装器」环节,在Windows系统执行cpack -G WIX -C Debug命令时,触发错误:CMake Error: ABSOLUTE path INSTALL DESTINATION forbidden。相关CMakeLists.txt代码片段:
install (TARGETS Tutorial DESTINATION ${PROJECT_SOURCE_DIR}/install/bin) install (FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h" DESTINATION ${PROJECT_SOURCE_DIR}/install/include)
修改方案
错误根源是CPack的WIX生成器禁止使用绝对路径作为安装目标目录,需改用相对路径配置:
- 修改
install命令的目标路径为相对路径:
install (TARGETS Tutorial DESTINATION bin) install (FILES "${PROJECT_BINARY_DIR}/TutorialConfig.h" DESTINATION include)
- 若需指定本地测试安装的目录,不要在CMakeLists.txt中硬编码绝对路径,而是在执行安装时通过
CMAKE_INSTALL_PREFIX参数指定:
cmake --install . --prefix "${PROJECT_SOURCE_DIR}/install"
这样配置后,CPack打包时会自动处理安装路径的映射,生成符合WIX规范的安装包,同时保留本地安装路径的灵活性。
内容的提问来源于stack exchange,提问作者TimeGo
相关产品推荐
相关产品推荐

