【问题标题】:undefined symbol: polkit_unix_process_new on i386 platform未定义符号:i386 平台上的 polkit_unix_process_new
【发布时间】:2015-04-18 19:41:30
【问题描述】:

我正在打包一个在 i386amd64 上都使用 polkit 的 debian vala 应用程序

我使用debuild 构建了我的 .deb 文件,并且打包很顺利。

两个平台上的安装也都很好。虽然在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.

应用的完整代码源可以找到here

编辑当我在 i386 平台上构建应用程序时,编译和链接运行正常,但无法启动并出现相同的错误,因此这不一定是打包错误...

【问题讨论】:

    标签: ubuntu cmake packaging dynamic-linking vala


    【解决方案1】:

    好的,错误是一个简单的cmake 错误,但在您维护应用程序时不一定很容易发现。

    似乎amd64 足够慷慨,可以让构建错误滑动但不是i386

    问题出在cmake 文件中,其中pkg_check_modules 子句中缺少库polkit-gobject-1并且包含文件是手动添加的不是链接到共享库。

    错误的cmake sn -p:

    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 sn -p:

    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})
    

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 2011-10-30
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多