qt編譯64位
⑴ 64位系統上裝32位的Qt,用來開發64位的程序,這樣可以嗎
基本類型在 64位系統和 32位系統不一樣,指令集也有區別。64位編譯的程序不能直接鏈接到32位的庫。鏈接庫的位必須兼容。64位鏈接32位,鏈接會失敗。必須安裝qt64bit。
⑵ 怎麼才能讓QT creator編譯64位的程序呢
你這里好像沒有可用的X64編譯器
可能是你的vs沒裝x64編譯器。
或者你下載一個MinGW x64的編譯器。
⑶ vs2010編譯64位QT4.8.6,designer.exe、assistant.exe無法運行
你沒有Release 編譯。 需要mfc100d.dll是說明這個EXE程序不是發布版本的,是調試版本的EXE,即debug版本的EXE。 重新下載Release編譯的exe 或者重新用release模式編譯一遍源代碼既可。 這種方法不推薦: 容易有莫...
⑷ vs2010編譯QT4.8.6,designer.exe、assistant.exe無法運行
認真核對操作步驟:
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 64 位編程和32位編程的區別
一、64位編譯器系統下可以使用64位的無符號或有符號變數了。
二、64位操作系統提供了更多的編程介面API,這些多出來的介面主要是涉及將32位數據類型擴展為64位的問題了。比如原來關於內存管理相關的函數,參數是32位的,在64位操作系統下就需要提供參數為64位的管理函數了等等。
⑹ qt可編譯運行但不能獨立運行linux
出問題的exe名稱為TestApp.exe,在Visual Studio下編譯運行都正常,但無法直接點擊exe運行。報錯為(應用程序無法正常啟動(0xc000007b)。請單擊「確定」關閉應用程序)
本人環境:基於visual studio IDE下的QT編譯器,共有四種,在 qt-版本號 文件夾下。
我的問題解決步驟如下:
1.看準自己項目的編譯環境
我電腦雖然是64位的,但是編譯器環境是32位的,故之後所有都需要以32位為標准
由於是Visual Studio ,所以採用下面文件夾中的msvc2017環境進行編譯(沒有標注64位就是32位)
2.添加系統環境變數
打開控制面板搜索環境變數,對系統path進行更改
按照上一步的環境進行配置!!!不要添加冗餘路徑,一項即可!!
PS:多項也可以,但是要在IDE中選擇正確的default編譯器,不然系統會搞混64和32位的dll
3.進入qt自帶的命令行中
開始框中搜索 → 選擇合適的環境(比如我是MSVC 2017 32-bit)→ 進入目標exe程序所在文件夾
輸入命令
windeployqt xxx(目標exe名稱)
復制
PS:該命令(windeployqt)若添加了系統Path後,也可以直接在系統cmd中運行,前提是:環境Path只有適合自己項目的那一項!!(only 32 or 64) 否則系統會弄混。。。然後就又失敗鏈接了qaq
此時,在exe的文件夾下面會多出很多文件夾和dll文件,表明已經link成功
再次強調:不同位數的編譯器鏈接出來的dll不同!一定一定要適合自己的程序