我有一个Vala应用程序只加载gmodule-2.0
模块,当通过通常make install
安装时,一切正常。当我构建一个RPM文件并使用dnf install my-app
安装(在Fedora 27上)时,我得到了一大堆错误,比如
(my-app:15094): Gtk-WARNING **: Could not find signal handler 'btn_thing_changed_cb'. Did you compile with -rdynamic?
(my-app:15094): Gtk-WARNING **: Could not find signal handler 'adj_thing_value_changed_cb'. Did you compile with -rdynamic?
即使我将-rdynamic
添加到构建并重新安装后,我仍然会看到这些错误。在某处我读到我需要使用gmodule-export-2.0
,但是pkgconfig
上的差异和gmodule-2.0
的差异表明它们完全相同。 SOOOO ...
应用程序是用Vala编写的,使用valac
构建。另外,我所拥有的UI类是Gtk模板类,这可能是一个问题,但是当我从源代码安装它时它工作的事实让我觉得它不是。
答案 0 :(得分:0)
这是因为默认的RPM构建将从可执行文件中删除符号。您可以通过更改spec
文件来禁用剥离:
%global __os_install_post %{nil}
或:
%global __strip /bin/true