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

CPack打包时删除顶级目录失败问题求助

CPack打包libmodbus-3.0.8生成RPM时删除目录失败问题

我正在尝试使用CPack打包libmodbus-3.0.8,采用RPM生成器。无论将CPACK_INCLUDE_TOPLEVEL_DIRECTORY设置为1或0,执行打包命令时都会出现CPack Error: Problem removing toplevel directory错误。已尝试执行build/make install命令、使用默认值及简化包配置,问题仍未解决。

CPack配置文件

# This file will be configured to contain variables for CPack. These variables
# should be set in the CMake list file of the project before CPack module is
# included. The list of available CPACK_xxx variables and their associated
# documentation may be obtained using
#  cpack --help-variable-list
#
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
# and some are specific to a generator
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
# usually begin with CPACK_<GENNAME>_xxxx.

set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "1")
set(CPACK_BUILD_SOURCE_DIRS ";")
set(CPACK_CMAKE_GENERATOR "Unix Makefiles")
set(CPACK_COMPONENTS_ALL "")
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY " built using CMake")
set(CPACK_GENERATOR "RPM")
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};ALL;/")
# set(CPACK_INSTALL_CMAKE_PROJECTS "libmodbus-3.0.8.tar;ALL;ALL;/")
set(CPACK_INSTALL_PREFIX "/usr/local")
set(CPACK_MODULE_PATH "")
set(CPACK_NSIS_DISPLAY_NAME "libmodbus-3.0.8")
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
set(CPACK_NSIS_PACKAGE_NAME "libmodbus-3.0.8")
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
set(CPACK_OUTPUT_CONFIG_FILE "/CPackConfig.cmake")
set(CPACK_PACKAGE_CONTACT "Mark Doellman")
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY " built using CMake")
set(CPACK_PACKAGE_FILE_NAME "libmodbus-3.0.8-x86_64")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "libmodbus-3.0.8")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "libmodbus-3.0.8")
set(CPACK_PACKAGE_NAME "libmodbus-3.0.8")
set(CPACK_PACKAGE_RELEASE "1")
set(CPACK_PACKAGE_RELOCATABLE "true")
set(CPACK_PACKAGE_VENDOR "GE Aerospace")
set(CPACK_PACKAGE_VERSION "3.0.8")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake/Templates/CPack.GenericLicense.txt")
set(CPACK_RESOURCE_FILE_README "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake/Templates/CPack.GenericWelcome.txt")
set(CPACK_RPM_PACKAGE_RELEASE "1")
set(CPACK_SET_DESTDIR "OFF")
set(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/CPackSourceConfig.cmake")
set(CPACK_SOURCE_RPM "OFF")
set(CPACK_SOURCE_TBZ2 "ON")
set(CPACK_SOURCE_TGZ "ON")
set(CPACK_SOURCE_TXZ "ON")
set(CPACK_SOURCE_TZ "ON")
set(CPACK_SOURCE_ZIP "OFF")
set(CPACK_SYSTEM_NAME "Linux")
set(CPACK_THREADS "1")
set(CPACK_TOPLEVEL_TAG "Linux")
set(CPACK_WIX_SIZEOF_VOID_P "")
set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY "1")

if(NOT CPACK_PROPERTIES_FILE)
  set(CPACK_PROPERTIES_FILE "/CPackProperties.cmake")
endif()

if(EXISTS ${CPACK_PROPERTIES_FILE})
  include(${CPACK_PROPERTIES_FILE})
endif()

执行命令及日志

cpack --verbose --config default.cmake -D CPACK_INCLUDE_TOPLEVEL_DIRECTORY=0
CPack: Enable Verbose
CPack Verbose: Read CPack config file: default.cmake
CPack Verbose: Read CPack configuration file: /mnt/c/Users/503373880/Documents/Projects/RHEL-Packages/TSDS/libmodbus-3.0.8.tar/default.cmake
CPack Verbose: Specified generator: RPM
CPack Verbose: Use generator: cmCPackRPMGenerator
CPack Verbose: For project: libmodbus-3.0.8
CPack: Create package using RPM
CPack Verbose: Read description file: /usr/share/cmake/Templates/CPack.GenericDescription.txt
CPack Verbose: [RPM] requested component grouping = ONE_PER_GROUP
CPack Verbose: Remove toplevel directory: /mnt/c/Users/503373880/Documents/Projects/RHEL-Packages/TSDS/libmodbus-3.0.8.tar/_CPack_Packages/Linux/RPM
CPack Error: Problem removing toplevel directory: /mnt/c/Users/503373880/Documents/Projects/RHEL-Packages/TSDS/libmodbus-3.0.8.tar/_CPack_Packages/Linux/RPM
CPack Error: Error when generating package: libmodbus-3.0.8

核心问题:无论调整相关参数或添加标记,包始终因该删除顶级目录的错误无法构建,请求帮助解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:04:56