[英]Qt program fails to compile/has runtime error (IDE: CodeBlocks/QtCreator)
我是Qt的新手。 雖然我已經安裝了4.8.3了很長時間,但昨天我才開始編寫我的第一個Qt程序。 我在Windows環境下,對我的C ++代碼使用CodeBlocks。
我遵循了有關Qt編程的書,並試圖重現該書的示例。 當需要單獨編譯時,第二章出現了問題。 我從未使用CodeBlocks成功完成單獨的編譯,這次也沒有例外:我仍然收到“對XXX的未知引用”。
我嘗試在線查找所有說明,但仍然無法解決(設置qmake,鏈接等)。尤其是當我使用qmake並將makefile標記為自定義文件時,每當我編譯程序時,CodeBlocks告訴我該項目並沒有建 當我單擊“是”以構建程序時,彈出相同的“尚未構建”通知,並重復該過程。
我曾經懷疑我的Qt出問題了,所以我將其刪除並安裝了最新的Qt(即Qt5.0)。 但是我不能使用它,因為CodeBlocks僅支持Qt4,而我的編譯器不支持Qt5。
因此,我嘗試下載4.8.4的“舊版本”。 事實證明,我什至無法編譯一個文件程序(我的意思是整個項目中只有一個.cpp文件,沒有自定義頭文件)。 我嘗試了默認的CodeBlock qt程序,如下所示:
#include <QApplication>
#include <QFont>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QPushButton quit("Quit");
quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
quit.show();
return app.exec();
}
只是一個非常標准的。 它應該可以編譯,並且可以編譯,但是情況更糟:該程序永遠無法運行,因為執行后立即發生運行時錯誤(錯誤代碼:0xC0000005或-1073741819)這是我的問題1:我沒有任何線索,可以做什么?我要解決問題嗎? 我不介意刪除我的CodeBlocks和Qt並重新安裝(如果它們有效),但是我已經嘗試過了,沒有用。
我的第二個問題:(已解決)然后我嘗試使用Qt Creator。 當我編譯上面顯示的簡單程序時,我收到很多關鍵字為“ unwind_resume”的錯誤-有人可以告訴我如何解決嗎? (在線注釋建議運行qtvar.bat,但無濟於事;有些建議構建調試庫,我嘗試過但由於內存不足而意外停止了調試庫?)
我的第三個問題:(發現它相當多余,因為上面已經討論過了,所以我刪除了它)
(我首先要感謝真正閱讀過我的帖子的人。我不得不說,盡管所提供的信息可能不足以尋找解決方案,但這只是我所知道的。)
更新-更多信息:實際上,我對CodeBlocks也有類似的未定義參考。 但是我很懶,所以我只是將所有.dll文件從qt文件夾復制到SysWOW64。 程序確實可以編譯並在昨天運行,但是即使我也復制了新的.dll文件,今天重新安裝qt和代碼塊后,程序也因運行時錯誤而崩潰。 明確說明:如果我將.dll文件復制到SysWOW64,則代碼塊可以編譯程序,但是現在程序崩潰了,這與昨天的正常運行不同。)
更新-現在的問題是運行時錯誤。
好的,讓我們在這里回顧一下,停止在評論后串聯評論。
對於您的第一個問題,我們清除了所有先前編譯的.h/hpp
文件夾,僅保留了所需的文件,即: .cpp
文件, .h/hpp
文件和.pro
文件(以及您可能需要的任何資源文件,但不是此示例的情況)。
然后從終端/ cmd 手動編譯即可構建項目:
qmake.exe -project <PATH_TO_NEEDED_FILES>
qmake
make
現在,關於運行時錯誤和Entry Point Not Found
第二個問題……嗯,我一無所知。 Googleing一點我發現Entry Point
錯誤的最常見原因是Qt
鏈接到舊版本的dll:
在第二個鏈接中,通過將Qt路徑設置為Windows PATH
中的第一個解決了該問題。 也許有幫助。
希望有更多經驗的人能幫忙!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.