簡體   English   中英

在Fedora上編譯(依賴項)錯誤

[英]Compile (dependency?) error on Fedora

我一直在開發一個名為RoboJournal的程序,最近完成了0.4.1版本。 我目前正在為Fedora打包它,但是由於某種原因,該程序無法在該OS上編譯。 在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則沒有。 我認為此錯誤僅是由於缺少軟件包引起的,但我不確定是哪個軟件包。 Google沒有給我任何幫助。 有任何想法嗎?

任何想要自己測試的人都可以從git://github.com/pwizard2/robojournal.git進行克隆。 該應用程序依賴於以下軟件包(到目前為止):qt,qt輔助,qt-mysql,qt-devel,qt-webkit,qt-webkit-devel。

這個問題可能是你沒有將您對程序libX11所以你需要添加-lX11你的鏈接命令,然后一切都將正常工作。

它在其他Linux發行版中起作用的原因是,它們允許使用僅間接拉出的庫來解析符號-因此,如果您的程序鏈接到與libX11鏈接的庫,則可以在libX11調用例程。

幾年來,Fedora一直不允許這種間接鏈接(默認情況下)(請參閱諒解DSOLinkChange ),並且現在也遵循了其他幾個發行版。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM