2016-01-09 55 views
1

最近,我意識到我運行的是32位版本的Ubuntu,即使我的計算機能夠支持64位,所以我從12.10(? )32位到15.10 64位。Qt C++ - 切換到64位後無法編譯

Qt根本不喜歡這個。當編譯任何項目,我會得到這樣的:

error: fatal error: bits/c++config.h: No such file or directory compilation terminated. 

我解決了這個問題有:

sudo apt-get install gcc-multilib g++-multilib 

,但現在我得到

error while loading shared libraries: libQt5Widgets.so.5: wrong ELF class: ELFCLASS64 

經過一番研究,我發現,這就是在64位庫上編譯32位程序的結果。

我不想從32到64交叉編譯,我只是想在我的電腦上編譯它。

+4

您升級後是否獲得了Qt的64位版本? – NathanOliver

+0

「libQt5Widgets.so.5:錯誤的ELF類:ELFCLASS64」 - 這是一個64位的庫。如果你有一個32位版本,它可能在錯誤的地方/首先找不到。 –

+0

@NathanOliver謝謝,這有幫助! – Koopa

回答

2

我明白了,感謝NathanOliver和Mats Petersson(謝謝!)。

我所做的是我進入了右側的項目選項卡,並點擊頂部的管理工具包。

Screenshot 在工具包選項卡中,選擇默認配置,然後查看編譯器組合框。確保您選擇了64位編譯器,而不是32位編譯器。

現在,在菜單欄的Build選項卡中重新生成全部,全部清理並運行qmake,並且您應該能夠編譯您的程序。