未定义的符号:polkit_unix_process_new 在 i386 平台上
undefined symbol: polkit_unix_process_new on i386 platform
我正在打包一个在 i386
和 amd64
上都使用 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
edit 当我在 i386 平台上构建应用程序时,编译和链接运行正常但无法启动并出现相同的错误,因此这不一定是打包错误...
好的,这个错误是一个简单的 cmake
错误,但在维护应用程序时不一定容易发现。
似乎 amd64
足够慷慨地让构建错误滑动但不是 i386
问题出在 cmake
文件中,其中库 polkit-gobject-1
在 pkg_check_modules
子句中丢失 并且 添加了包含文件手动 但 不是 link 到共享库。
错误的 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})
我正在打包一个在 i386
和 amd64
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
edit 当我在 i386 平台上构建应用程序时,编译和链接运行正常但无法启动并出现相同的错误,因此这不一定是打包错误...
好的,这个错误是一个简单的 cmake
错误,但在维护应用程序时不一定容易发现。
似乎 amd64
足够慷慨地让构建错误滑动但不是 i386
问题出在 cmake
文件中,其中库 polkit-gobject-1
在 pkg_check_modules
子句中丢失 并且 添加了包含文件手动 但 不是 link 到共享库。
错误的 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})