我一直在研究一個名爲RoboJournal的程序,最近我完成了0.4.1版本。我目前正在爲Fedora打包它,但由於某些原因,該程序無法在該操作系統上編譯。在Windows和任何基於Debian的Linux(Debian本身,Ubuntu,Mint等)上,完全相同的代碼可以很好地構建。對於Debian來說,我沒有任何問題。以下是編譯器輸出錯誤信息(在Fedora 18 KDE版本上運行):Fedora編譯(依賴?)錯誤
/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則沒有。我認爲這個錯誤只是由一個丟失的包引起的,但我不確定哪一個。 Google沒有給我任何幫助。有任何想法嗎?
任何想要自己測試的人都可以從git://github.com/pwizard2/robojournal.git克隆。該應用程序依賴於以下包(到目前爲止):qt,qt-assistant,qt-mysql,qt-devel,qt-webkit,qt-webkit-devel。
如果Fedora上沒有X11運行時庫,那麼我會感到非常驚訝...不應該是'/ usr/lib64/libX11.so'嗎? – cmannett85 2013-04-26 07:13:08
由於usrMerge特性在'/ lib64'中進行,'/ usr/lib64'在Fedora上是同樣的事情 - 第一個是到第二個的鏈接。 – TomH 2013-04-26 08:02:12