8

是否有人使用过具有 Qt 和 OpenGL 依赖项的 debian 包的 CPack 脚本的工作示例?

我设置了这个

set (CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12), libQtOpenGL (>=4.6.0), libQtCore (>=4.6.0), libQtGui (>=4.6.0), libglut (>=3.0), libICE (>=6.0), libX11 (>=6.0), libXext (>=6.0), libXmu (>=6.0), libXi (>=6.0), libstdc++ (>=6.0), libm (>=6.0), libgcc_s (>=1.0), libc (>=6.0), libGLU, libGL (>=1.0), libpthread" )

我四处搜索,但从未找到一个可行的例子。我的主要问题是如何首先为 libGLU 设置依赖项,然后为 libGL 和以下库设置依赖项。

一旦我创建了 deb,安装程序就会说

 **Error: Dependency is not satisfiable: libXXX**

其中 XXX 是我之前列出的库之一(主要是 Qt 库)

目前我的 cmake 版本是 2.8.2 但 cpack_add_component 命令不起作用

4

2 回答 2

9

您可以使用CPACK_DEBIAN_PACKAGE_SHLIBDEPSCPack 变量:

set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)

这将自动解决依赖关系。

于 2015-07-12T12:24:29.707 回答
8

我认为您不能在 CMake 中“订购”依赖项。如果您想要一个 CMakeLists 生成具有 qt 依赖项的 .deb 的工作示例,请查看:

project(QExhibitor)
cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE(Qt4 REQUIRED QtNetwork QtGui QtCore QtXml)
FIND_PACKAGE(CSSRobopec REQUIRED)
#Some non interesting things ...
#.....
add_executable(QExhibitor ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP})
target_link_libraries(QExhibitor ${QT_LIBRARIES} ${CSSRobopec_LIBRARIES})

INSTALL(TARGETS QExhibitor DESTINATION /reetiPrograms/RApplications/Applications/)
INSTALL(FILES Icons/RQExhib.png DESTINATION /reetiPrograms/RApplications/Icons)

set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "cssrobopec,libqt4-xml,libqt4-network,libqtgui4,treeupdatablereeti")
set(CPACK_PACKAGE_DESCRIPTION "Configure UExhibitor and launch missions")
set(CPACK_PACKAGE_CONTACT "Adrien BARRAL aba@robopec.com")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/Debian/postinst")

include(CPack)
于 2012-04-10T13:59:39.917 回答