我正在打包一个在i386和amd64上使用i386的debian应用程序
我用debuild构建了我的debuild文件,并且打包得很好。
安装在两个平台上也都很好。虽然在amd64上一切正常运行,但是应用程序在i386上启动失败,出现以下错误:
undefined symbol: polkit_unix_process_new我试着安装libpolkit-gobject-1-dev,以防这是一个缺失的依赖,但它不会改变任何事情。
以下是debian控制文件的副本,以防与此相关:
Source: elementary-tweaks
Section: x11
Priority: optional
Maintainer: Michael P. Starkweather <mpstark@gmail.com>
Build-Depends: cmake (>= 2.8),
debhelper (>= 9),
libgranite-dev,
libgtk-3-dev (>= 3.10),
libglib2.0-dev,
libgee-0.8-dev,
libgconf2-dev,
libswitchboard-2.0-dev,
libpolkit-gobject-1-dev,
valac (>= 0.22)
Standards-Version: 3.9.5
Homepage: https://launchpad.net/elementarytweak
Package: elementary-tweaks
Architecture: any
Depends: gala, plank, slingshot-launcher, ${misc:Depends}, ${shlibs:Depends}
Pre-Depends: dpkg (>= 1.15.6)
Recommends: plank
Enhances: switchboard
Description: Change hidden desktop settings
Switchboard plug for controlling hidden options.
Package: elementary-tweaks-dbg
Architecture: any
Section: debug
Priority: extra
Depends: elementary-tweaks (= ${binary:Version}), ${misc:Depends}
Pre-Depends: dpkg (>= 1.15.6)
Enhances: elementary-tweaks
Description: Change hidden desktop settings (debugging symbols)
Switchboard plug for controlling hidden options.
.
This package contains debugging symbols for switchboard-plug-template.应用程序的完整代码来源可以找到这里。
编辑当我在i386平台上构建应用程序时,编译和链接运行良好,但是它无法以相同的错误启动,所以这不一定是打包错误.
发布于 2015-04-18 20:08:51
好的,这个错误是一个简单的cmake错误,但在维护应用程序时不一定容易发现。
amd64 似乎慷慨地允许构建错误滑过,而不是 i386。
问题出现在cmake文件中,在pkg_check_modules子句中缺少库polkit-gobject-1,并且包含文件是手动添加的,但不是到共享库的链接。
错误的cmake片段:
pkg_check_modules (DEPS REQUIRED gthread-2.0 gtk+-3.0 switchboard-2.0 granite gconf-2.0 gee-0.8 glib-2.0)
add_definitions (${DEPS_CFLAGS} -I/usr/include/polkit-1)
add_definitions (${DEPS_CFLAGS})
link_libraries (${DEPS_LIBRARIES})
link_directories (${DEPS_LIBRARY_DIRS})正确的cmake片段:
pkg_check_modules (DEPS REQUIRED gthread-2.0 gtk+-3.0 switchboard-2.0 granite gconf-2.0 gee-0.8 polkit-gobject-1 glib-2.0)
add_definitions (${DEPS_CFLAGS})
link_libraries (${DEPS_LIBRARIES})
link_directories (${DEPS_LIBRARY_DIRS})https://stackoverflow.com/questions/29721952
复制相似问题