當前位置:首頁 » 編程軟體 » qt編譯一直不停止

qt編譯一直不停止

發布時間: 2022-06-05 17:52:21

① QT的代碼編譯沒錯,但是debug模式下會異常終止,在release模式下就沒問題,請問是什麼情況

qt代碼在release模式下編譯之後,會偶先題目所述現象,但是debug模式下確沒事,單獨運行release文件夾中的exe也可以,唯獨在qtcreator中運行時不行,網路之後的答案基本是環境問題,巴拉巴拉,但是他也沒說具體是什麼環境問題,這叫我怎麼排查?!

不過就在剛剛我又出現了這個問題,這種問題一般出現在如下情況:

1、添加一些新的模塊或代碼中需要新的qt的dll庫等;

2、把別人的代碼拉倒本地後再編譯(別人的庫包括上一條所述的內容);

qt的release模式是需要單獨去尋找dll或相關鏈接庫的,如果它自己找不到,就會爆出標題所述的內容,此時你可以檢查你的環境(但是就像我之前說的,我也不知道我要檢查什麼環境!),另外一種有效的做法就是呢:

安裝qt後會隨著按照一個命令行工具(和windows自帶的CMD類似),叫做 Qt 5.7 for Desktop (MinGW 5.3.0 32bit),在開始目錄里打開這個工具,如下圖:


在命令行中進入到,編譯後的exe存放的目錄中,然後輸入命令:

windeployqt xxx.exe

其中xxx.exe就是你生成的exe名稱,這條命令會把exe相關的內容解析出來,你會在文件夾中看到很多qt的相關dll,這些都是依賴性,有了這些依賴項之後,再返回運行qt creator就能成功運行啦~~~~

當然了,這種方式也適用於對應用打包,把exe單獨放到一個文件夾,運行上述命令,這個文件夾就可以在沒有qt的環境的電腦中運行了。

② OSX系統用QT編譯cmakelist文件時出錯 在這無限循環

Qt在編譯時,需要首先使用uic.exe編譯UI文件,通過moc.exe處理Q_OBJECT之類的宏,當然你可以去掉這些定義,否則就需要加上:#COMPILEUIsSET(UISmnwindow)FOREACH(ui_file${UIS})SET(TMP_IN"${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")SET(TMP_OUT"${PROJECT_BINARY_DIR}/ui_${ui_file}.h")EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/uic.exe-o${TMP_OUT}${TMP_IN})MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/uic.exe-o${PROJECT_BINARY_DIR}/ui_${ui_file}.h${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")ENDFOREACH(ui_file)#CREATEMOCSET(HEADERSmainwindow)FOREACH(header_file${HEADERS})SET(TMP_IN"${PROJECT_SOURCE_DIR}/inc/${header_file}.h")SET(TMP_OUT"${PROJECT_BINARY_DIR}/moc_${header_file}.cpp")EXECUTE_PROCESS(COMMAND${QT_FOLDER}/bin/moc.exe-o${TMP_OUT}${TMP_IN})SET(MOCS${MOCS}${PROJECT_BINARY_DIR}/moc_${header_file}.cpp)MESSAGE(STATUS"EXEC=${QT_FOLDER}/bin/moc.exe-o${PROJECT_BINARY_DIR}/moc_${header_file}.cpp${PROJECT_SOURCE_DIR}/inc/${header_file}.h")ENDFOREACH(header_file)freec#.netqrcreator這里要注意的是:EXECUTE_PROCESS在COMMAND後面不能加引號,命令直接寫,否則執行的程序也不會出錯,但也不會正常運行.

③ 為什麼我的qt5.4編譯以後就沒反應了,也不出現控制台程序,也沒有生成.exe文件

這是再正常不過的事了,程序執行完(簡單程序時間可忽略)就自動關閉了,想讓它停住可加<cstdlib>頭文件並在return 0;語句前加一句system("pause");如果不想看到「請按任意鍵繼續」可換為
system("pause>nul");
另外一種做法:(不需加其他頭文件,但要<iostream>頭文件)在return 0;前加cin.get()(這句話的作用是讀取一個字元,包括換行符),這時隨便按一個鍵就會退出程序。
你如果是想學習C++語法,在DEV-C++里編譯運行就可以了,沒有必要自己去打開exe文件。

④ OSX系統用QT編譯cmakelist文件時出錯 在這無限循環

循環冗餘檢查的意思就是告訴你 某個區域讀不出來 然後無限循環的讀那個區域,直到時間用完 可能是碟或者光碟機問題 個人更趨向與碟的問題 你看下碟是否有劃痕 或者在別人的機器上試下 如果是正版而且不是你光碟機問題 那麼你可以索賠的

⑤ QT編譯錯誤,怎麼解決

項目->構建設置,把中文路徑改為英文路徑 ,記得清理之後再重新構建哦

⑥ 為什麼這個Qt程序編譯不了

原因:Qt不支持中文的路徑,把源碼的路徑全部改成英文即可解決問題。

⑦ 為什麼我的qt編譯程序時不報錯也不運行

首先確定的環境有搭建好!然後確定你編譯的程序不是arm的給
開發板
用的,而是X86平台的!最後就是你的系統有問題了!

熱點內容
登陸認證失敗請檢查伺服器地址 發布:2025-05-20 07:06:55 瀏覽:831
無限分類實現php 發布:2025-05-20 06:57:40 瀏覽:681
數據結構c語言版嚴蔚敏李冬梅 發布:2025-05-20 06:55:05 瀏覽:449
iphone快捷訪問 發布:2025-05-20 06:55:05 瀏覽:929
如何加密硬碟分區 發布:2025-05-20 06:52:29 瀏覽:363
反編譯gd 發布:2025-05-20 06:52:23 瀏覽:838
java源碼知乎 發布:2025-05-20 06:47:59 瀏覽:483
dos解壓縮命令 發布:2025-05-20 06:47:57 瀏覽:639
安卓傳數據給蘋果的軟體叫什麼 發布:2025-05-20 06:42:48 瀏覽:804
怎麼樣盤解壓力 發布:2025-05-20 06:37:08 瀏覽:85