我一直在开发一个名为 RoboJournal 的程序,最近完成了 0.4.1 版本。我目前正在为 Fedora 打包它,但由于某种原因,该程序无法在该操作系统上编译。完全相同的代码可以在 Windows 和任何基于 Debian 的 Linux(Debian 本身、Ubuntu、Mint 等)上构建良好。我为 Debian 打包这个没有问题。这是编译器输出错误信息(在 Fedora 18 KDE 版本上运行):
/usr/bin/ld: dblogin.o: undefined reference to symbol 'XkbGetIndicatorState'
/usr/bin/ld: note: 'XkbGetIndicatorState' is defined in DSO /lib64/libX11.so.6 so try adding it to the linker command line
/lib64/libX11.so.6: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
问题似乎是链接器找不到任何应该控制 XkbGetIndicatorState 信号(X11 库之一)的东西。这用于确定在某个对话框处于活动状态时是否启用大写锁定。显然,任何基于 Debian 的东西都包含这个库,而 Fedora 没有。我认为这个错误只是由缺少包引起的,但我不确定是哪个包。谷歌没有给我任何有用的东西。有任何想法吗?
任何想自己测试的人都可以从 git://github.com/pwizard2/robojournal.git 克隆。该应用程序依赖于以下软件包(到目前为止):qt、qt-assistant、qt-mysql、qt-devel、qt-webkit、qt-webkit-devel。