2013-01-01 40 views
3

Qt5是Qt的新一代,它有一些變化。將Qt4移植到Qt5:無法解析的外部符號

我有一個使用Qt4編譯的項目。我已經下載了Qt5-VisualStudio2010軟件包,並試圖將我的項目從Qt4移植到Qt5。出現問題。

所有「包含」路徑都已修好。但是,編譯器現在報告了數百個'無法解析的外部符號'(幾乎所有的函數調用,聽起來像編譯器都找不到任何.lib文件)。我甚至嘗試添加在Qt SDK文件夾中找到的所有.lib文件,但是沒用。最基本的類和方法:QApplication :: exec(...)也報告爲'未解析的符號'。

項目文件已被修改以適應QT5包裝:

myproject.pro file: 
QT += widgets 

任何人都已經得到了Qt的新版本類似的經歷?

回答

3

從 'qt_newbie89'(http://qt-project.org/forums/viewthread/23200):

我也「不小心」解決了這個問題。我右鍵單擊項目窗口中的 項目文件夾並選擇qmake。之後, 選擇Run,所有錯誤消失。順便說一句,我不知道爲什麼那個作品 。

從「ChrisW67」(http://qt-project.org/forums/viewthread/23253/):

Makefile的文件並沒有「被破壞」:它是完全按照您 離開它,全命令和路徑的適用於以前的Qt 4 安裝。當Qt Creator運行nmake來構建項目時,nmake做了 不會自動重新運行qmake來生成Makefile,因爲 (未觸及的)Makefile比生成它的pro文件更新。 這是正常且正確的make行爲,但導致Qt5在失速和預期的Qt4安裝之間出現 不匹配。

我的說法: 是的,這真的解決了鏈接問題!問題是,當項目使用Qt4創建時,'make'文件也很好地與該項目一起創建。當我刪除Qt4,安裝Qt5並通過Qt5(使用新的Qt Creator)導入舊項目時,可能'make'文件已損壞。

1

我懷疑你不會是唯一有這個問題的人。你有沒有看過:this呢?它講述了在qt/base/bin中名爲fixqt4headers.pl的PERL腳本。這是爲了修復頭文件而設計的。我注意到另一個鏈接可能會有幫助,如果這不能解決你的問題,請嘗試this,它看起來是相當深思熟慮。而且,我沒有嘗試過。我還沒有真正升級到Qt 5。乾杯!

1

這發生在我身上,我也跟着。

  1. 此外聯Qt5Widgetsd.lib
  2. 改變了項目屬性 '治療wchar_t如BUIL' 爲真(在C++ - >語言部分)。