QT4的FindDialog例子在VC6中編譯時提示鏈接錯誤的一種直觀的解決辦法(包含過程思路)

前沿:

  根據《QT中文手冊》在測試運行FindDialog的例子時,果不其然出現了4個鏈接錯誤。

解決過程:

  1、剛開始認爲既然是鏈接錯誤,那麼應該是沒有鏈接到對應的函數體,一般來說可能是對應的Lib庫文件沒有鏈接。

        檢查後發現在setting中已經鏈接了QtGuid4.lib。

  2、考慮可能是需要重新編譯一次QT庫,於是在Qt4主目錄下運行qmake,nmake,結果nmake出現錯誤提示:

        fatal error U1077: 'link' : return code '0x1'
        Stop.
        NMAKE : fatal error U1077: '"D:\Program Files\Microsoft Visual Studio\VC98\Bin\NMAKE.EXE"' : return code '0x2'
        Stop.
        NMAKE : fatal error U1077: 'cd' : return code '0x2'
        Stop.
        認爲應該是vc的link路徑沒有被識別,尋找環境變量,看看修改一下是否可以。

        經過幾次調整後,仍然不行,那麼只好去網上尋找。

  3、網上都是提示“需要重新運行qmake,更新makefile,然後編譯程序”。繼續查看《QT中文手冊》,發現如下描述:

        “使用了Q_OBJECT 宏的類必須運行moc。如果使用qmake,那麼makefile 裏自動包含相關的規則。

         如果忘記了運行moc,就會發生連接錯誤。”

         網上也給出了一堆解決方法:運行moc finddialog.h -o moc_finddialog.cpp;

                                                             在vc6的工程setting中進行Build定製:moc finddialog.h -o moc_finddialog.cpp;

                                                             qmake -project; qmake; nmake

         但是,不知道究竟該怎麼qmake或者moc,在cmd敲了好多遍,然後編譯的時候仍然不行。build定製中也不能肯定命令是否正確。

  4、最後在一次胡亂運行moc finddialog.h -o moc_finddialog.cpp命令之後,發現主目錄下多了一個moc_finddialog.cpp文件,驚喜之餘將其

         通過vc6的Add Files to Project命令將其加入工程,編譯後竟然可以了。

最終解決辦法:

  A、按照《QT中文手冊》輸入組織finddialog相關代碼。

  B、用cmd在主目錄下運行moc finddialog.h -o moc_finddialog.cpp

  C、在VC6工程中將moc_finddialog.cpp文件添加測試工程。

  D、重新編譯即可。

彎路曲曲:

  1、主要是對QT開發過程不熟悉,也不知道moc爲何物。

  2、基礎不同,需要不同的文檔,最好是圖文並茂step by step形式的。

本文檔適合人羣:

  對QT沒有較多概念、經歷的首次入門者。

發佈了43 篇原創文章 · 獲贊 12 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章