導航:首頁 > 源碼編譯 > qt無法編譯release版本

qt無法編譯release版本

發布時間:2023-05-03 08:57:32

㈠ qt如何把debug編譯成release版本

可以project->Set Active Config,選中release版本,此後,按F5或F7編譯所得的結果就是release版本。
Debug版本包括調試信息,所以要比Release版本大很多(可能大數百K至數M)。
至於是否需要DLL支持,主要看你採用的編譯選項。如果是基於ATL的,則Debug和Release版本對DLL的要求差不多。
如果採用的編譯選項為使用MFC動態庫,則需要MFC42D.DLL等庫支持,而Release版本需要MFC42.DLL支持。
Release Build不對源代碼進行調試,不考慮MFC的診斷宏,使用的是MFC Release庫,編譯十對應用程序的速度進行優化,而Debug Build則正好相反,它允許對源代碼進行調試,可以定義和使用MFC的診斷宏,採用MFC Debug庫,對速度沒有優化。

㈡ QT如何生成release版本

(針對windows下的情況)一般分為兩種情況:

  1. 程序不含動態鏈接 即運行時不用.dll文件。此時,1. 點擊左側邊欄的Projects
    2. 在Build Step里的qmake build configuration中選擇Release,重新構建運行即可。

  2. 程序中含有動態鏈接(含有.dll文件)。此時,按照情況1操作後很可能無法生成.exe文件,或者生成的.exe文件,在生成的release文件夾中(如沒有生成release文件夾,自己建立一個release文件夾並且從debug文件夾中拷貝.exe文件進來亦可,並且該release文件夾不是必須在當前的工程目錄下)加入相應的動態鏈接庫文件(mingwm10.dll,QtGui4.dll,libgcc_s_dw2-1.dll,QtCore4.dll以及自編寫的程序所調用到的其他.dll文件,注意:.dll文件一定不要添加完全,不能有遺漏)和程序運行時需要預處理的配置文件(如沒有此種預處理所必須的文件,則不必考慮)等。但是這個時候還是經常發生錯誤,會提示 「
    無法定位程序輸入點******於動態鏈接庫
    QtCore4.dll上」這種類似的錯誤,這種情況是由於QtCore4.dll錯誤導致的,在qt的安裝目錄下有很多種QtCore4.dll文件,編譯時用的dll不是QT/bin中的dll,而用得是qt下desktop下的bin中的dll,雖然同名,但是功能不同,選擇錯誤會導致不能運行。以上操作都做到了,此時沒有意外,即使在沒有安裝QTcreator的機器上,該release文件夾下的.exe文件也能正常運行。

㈢ 新人求教,急.qt4.8.6無法編譯

認真核對操作步驟:
1、修改環境變數工具推薦:Rapid Environment Editor。
修改前請先備份當前的環境變數。然後:
(1)檢查系統變數path,刪除有關mingw其他版本等信息,以免與後續的mingw32-make沖突。
(2)檢查用戶變數INCLUDE、LIB、PATH、MSDevDir和MSVCDir,刪除有關\Microsoft Visual Studio\VC98的信息,因為它們會與後續的mingw32-make沖突,導致編譯出錯。
2、在電腦上安裝mingw編譯器,假設路徑安裝在C:\Qt\mingw32。將C:\Qt\mingw32\bin添加進環境變數path,打開DOS命令行輸入gcc --version和g++ --version和mingw32-make --version驗證編譯器安裝成功。我用的MinGW版本是V4.8.2,
3、解壓qt-everywhere-opensource-src-4.8.6.zip並進入目錄。例如:D:\qt-everywhere-opensource-src-4.8.6\
4、依次執行以下DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples
常見的使用選項說明:
-debug-and-release 編譯debug和release版
-opensource 選擇開源協議並確認
-platform win32-g++ 使用mingw編譯
-prefix "D:\Qt4.8.6" 指定編譯結果目錄,如果未指定則默認塵鏈當前
-shared 創建和使用共享Qt庫
-static 創建和使用靜態Qt庫
-nomake demos -nomake examples 不編譯常式
-nomake tests 不編譯tests

-skip qtwebkit 忽略qtwebkit,因為編譯它特別消耗時間

-mp 使用多核優化編譯

(2)mingw32-make
(3)mingw32-make install
5、編譯完成後,把C:\Qt\mingw32\bin\路徑下的三個文件libgcc_s_dw2-1.dll、libstdc++-6.dll和libwinpthread-1.dll拷貝到D:\qt-everywhere-opensource-src-4.8.6\bin\。另外,也請把步驟1備份的環境變數還原。
6、修改Qt安裝路徑
最初編搏悔譯時選擇的路徑是D:\Qt4.8.6\派銀孫。如果想將它復制到其他盤符,並且改名,例如:C:\Qt\4.8.6_MinGW。這樣一來會有問題嗎?是的,會有問題,因為Qt有絕對路徑依賴症。改名後C:\Qt\4.8.6_MinGW\bin\的exe執行程序都會出問題,要麼程序打不開,要麼多國語言發生異常。用記事本打開C:\Qt\4.8.6_MinGW\bin\qmake.exe,查找關鍵字「qt_prfxpath」,可以看到裡面含有原始的安裝路徑。我們不可以手動去修改qmake.exe,真正有效的解決方法是:
在C:\Qt\4.8.6_MinGW\bin\路徑下創建一個qt.conf文件,內容為
[paths]
Prefix = C:/Qt/4.8.6_MinGW

請注意:qt.conf文件必須是ANSI格式,並且Prefix的斜杠風格採取的是Linux的,而非Windows,否則會失效。或者使用"Prefix = .. ",如此一來,任意路徑有效。

㈣ Qt編譯出release版本的xxx.exe文件,運行時出現This application failed*** 提示

搜一下:Qt編譯出release版本的xxx.exe文件,運行時出現This
application
failed***
提示?

㈤ qt編譯要先編譯debug後才能編譯release嗎

不要。根據查詢相關公開信息顯示,在Qt中可以直接在QtCreator中舉數設置編譯目標為release,並進喚純行編譯。默認情況下,QtCreator會自動編譯debug和release兩種版本正鏈首的可執行文件。

㈥ 我的這個qt工程怎麼沒有release版本選擇,請看圖

因為你沒有選擇用release方式構建,你可以點擊,左側的項目(project)用你帶的release版本構建一個新的即可

㈦ 運用qt-ros生成的qt的項目運行release版本無法找到相關文件

點擊左側工具欄的「項目」,在「構建設置」中,將「編輯構建設置」更改為"Release"。特別要注意,「概要」中的"Show build"選擇框,將勾選去掉,此處主要是選擇將生成的文件放置在何處。
已經生成exe之後,將exe文件單獨放置在一個文件夾內。該操作是得到exe運行需要的dll文件。
進入到該軟體中,且在出現的cmd界面中,先進入到exe所在的文件夾。

㈧ Qt編譯出release版本的xxx.exe文件,運行時出現This application failed*** 提示

給你qt運行所需要的租讓庫,你參考下:
platforms/qwindows.dll 注意這個核拍platforms是一個文改型羨件夾,你拷貝整個文件夾就行
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Multimedia.dll
Qt5MultimediaWidgets.dll
Qt5Network.dll
Qt5OpenGL.dll
Qt5Positioning.dll
Qt5PrintSupport.dll
Qt5Qml.dll
Qt5Quick.dll
Qt5Sensors.dll
Qt5Sql.dll
Qt5Svg.dll
Qt5WebKit.dll
Qt5WebKitWidgets.dll
Qt5Widgets.dll
qwindows.dll

㈨ 求解,用QT creator怎麼生成release版本

Qt creator生成release版本的方法

在Qt creator的左下角,有一個按鈕(如圖)。

然後點擊綠色的類似於播放按鈕的按鈕進行編譯、運行。

㈩ 用QT做的軟體,debug版本正常,但是Release版本就死掉了,會是什麼原因

應該是相關的動態庫(Qt*.dll)存在多個版本引起的,
QT4在不同版本發布的動態庫的文件名都是一樣的,
比如4.1.4和4.4.3的都是QtCore4.dll,
但實際的版本不一樣會出現這樣的問題.如果Debug版本的程序運行沒有問題,
也就說明Debug版本的動態庫沒有上述的版本沖突的問題,
而是Release版本的動態庫存在著版本沖突.
這是因為絕大部分軟體發布時只帶著release版本的程序,
而不會發布debug版本的程序.最好的辦法是搜索一下硬碟內有多少目錄下有qt的動態庫
最有可能的問題是,你本機的的其他程序用到了其他版本的qt,並將含有qt動態包的路徑設置在系統的path環境變數中,debug和release時尋找qt動態包的目錄遍歷順序不一致,所以debug時調用你想要的qt動態包,而release程序執行時載入了別的版本的qt動態包,建議在系統內搜一下

閱讀全文

與qt無法編譯release版本相關的資料

熱點內容
程序員求助國企 瀏覽:833
雲伺服器網址租用多少錢 瀏覽:938
行車記錄儀安卓版怎麼用 瀏覽:500
java是不是數字 瀏覽:182
php模擬瀏覽器環境 瀏覽:353
編程誰都能學會嗎 瀏覽:407
使用國家反詐app都要開啟什麼 瀏覽:712
下載民宿APP有什麼用 瀏覽:52
續子語pdf 瀏覽:385
2021年加密貨幣最新行情 瀏覽:162
nfs怎麼加密ipsec 瀏覽:245
國二考試調用編譯器運算選擇題 瀏覽:750
同濟大學高等數學pdf 瀏覽:234
延時的宏命令怎麼設置 瀏覽:596
資料庫有哪些加密 瀏覽:209
改之理反編譯注冊教程 瀏覽:391
什麼是編譯程序和翻譯程序 瀏覽:208
python課程心得總結 瀏覽:17
派派中怎麼看對方在哪個伺服器 瀏覽:796
xp配置java環境變數配置 瀏覽:9