qt設置32位編譯
❶ 64位系統上裝32位的Qt,用來開發64位的程序,這樣可以嗎
基本類型在 64位系統和 32位系統不一樣,指令集也有區別。64位編譯的程序不能直接鏈接到32位的庫。鏈接庫的位必須兼容。64位鏈接32位,鏈接會失敗。必須安裝qt64bit。
❷ qt 64 位編程和32位編程的區別
一、64位編譯器系統下可以使用64位的無符號或有符號變數了。
二、64位操作系統提供了更多的編程介面API,這些多出來的介面主要是涉及將32位數據類型擴展為64位的問題了。比如原來關於內存管理相關的函數,參數是32位的,在64位操作系統下就需要提供參數為64位的管理函數了等等。
❸ qt4.8.6 怎麼配置qml編譯環境
1
下面介紹Windows版QT開發環境Qt Creater + MinGW + Qt libraries配置方法,
1.從MinGW網站下載mingw-get-inst-20120426.exe,默認安裝到C盤根目錄下:C:\MinGW,安裝時選擇C和C++ compiler ,默認只選中了C編譯器。
2
2.下載安裝配置QT libraries
http://qt-project.org/downloads
(1)可以在以上網址下載最新版的QT libraries,QT libraries就是QT Designer,QT設計師,用於設計UI界面。
最新版是Qt libraries 5.0 Beta 2 for Windows (501MB),我下載的是Qt libraries 4.8.3 for Windows (minGW 4.4, 317 MB),下載後是一個qt-win-opensource-4.8.3-mingw.exe安裝文件,大小為324M。
默認安裝路徑為C:\Qt\4.8.3,安裝時需要指定MinGW的安裝路徑為C:\MinGW。安裝完後需要把C:\Qt\4.8.3\bin目錄添加到系統變數的Path路徑中。
並新建系統環境變數QMAKESPEC,32位系統把值設置為C:\Qt\4.8.3\mkspecs\win32-g++;如果是64位系統,需要把值設置為C:\Qt\4.8.3\mkspecs\tru64-g++
還要新建系統環境變數QTDIR,值為C:\Qt\4.8.3
3.安裝後打開QT設計師主界面如圖:
3
3.下載安裝配置QT Creater
(1)還可以在上面的網址下載QT創建器。最新版本是Qt Creator 2.6.0 for Windows (51 MB),下載後是qt-creator-windows-opensource-2.6.0.exe,大小51M.
默認安裝到C:\Qt\qtcreator-2.6.0目錄下。需要把C:\Qt\qtcreator-2.6.0\bin目錄添加到系統變數的Path路徑中。如果不設置系統環境變數,則創建工程時kit不能設置成功,並且可創建的工程類型也會受到限制。
(2)設置QT Creator構建和運行配置項打開QT Creator,選擇菜單「工具/選項」,選擇左邊的"構建和運行",再選擇「Qt版本」選項卡,點擊「添加」,qmake路徑:C:\Qt\4.8.3\bin\qmake.exe。
如下圖所示:
4
還需要設置Compilers選項卡中的「手動設置」項的編譯器,Name設置為MinGW,編譯器路徑設置為C:\MinGW\bin\mingw32-g++.exe。
然後就可以正常的創建工程了。
(3)創建test1工程
選擇「文件/新建文件和工程」,在彈出的窗口左側選擇「其他項目」,右側選擇「空的Qt項目」,點擊「選擇」,設置工程名,並點擊「下一步」,由於之前已經設置了QT Creator構建和運行配置項,直接在彈出的窗口上點擊「下一步」即可。然後點擊「完成」,出現如下圖所示的工程test1。
❹ ubuntu64位怎麼編譯32位qt庫
64位可以編32位的程序出來,在各種FLAGS中增加 -m32 編出來的就是32位程序,連接時自然是找32位的共享庫
這個要看發行版對32位支持的實現,比如gentoo下如果開abi支持雙架構那很可能悲劇,因為有些包還沒跟上,如果用binary的32位庫又會因為版本不同出現莫名其妙的問題,比如fontconfig的坑。
我在64位編32位程序都是使用chroot的方法,這樣就可以把32位的頭文件庫什麼的全放在某個地方。我用的是ubuntu,32位庫和64位庫位置不一樣,一般可以直接安裝32位的庫,如果遇到某些比較特殊的庫,一般都可以通過重新編譯增加rpath解決,如果沒源碼也可以用patchelf直接給elf上rpath。
如果您認可我的答案,請採納。
您的採納,是我答題的動力,O(∩_∩)O謝謝!!
❺ qt 5 在64位系統下怎麼會是32位的環境
看你安裝的是什麼版本的吧,在64位也能安裝32程序當然也能配置32位的環境啦。
之前有個工程要調用32的庫,在vs中使用msvc2015編譯器編譯qt工程,下載的qt是64位的只好重新下載一個32位的qt。
❻ 在運行QT常式的時候無法運行,求大神幫忙解決,電腦是win764位系統,企業版,但是qt編譯器是32位的
源代碼路徑里不要有中文空格之類的,用全英文的路徑
❼ 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不同!一定一定要適合自己的程序
❽ win7 安裝qt vs2010配置boost,CGAL等
一、安裝cmake
1、這一步比較簡單,下載安裝最新版本cmake-2.8,開始如下安裝
2、注意這里選擇第二個選項,為所有的用戶添加系統變數
3、選擇安裝到目錄 F:\CMake 2.8,個人建議最好安裝在C盤目錄下。
4、安裝完畢後確認一下系統變數中有沒有紅色框中的目錄,若沒有需要手動添加進去。
5、cmake安裝完畢!
二、安裝Boost庫
1、下載最新版本,當前為boost_1_55_0
2、按 Win+R組合鍵輸入cmd進入命令窗口:
切換當前目錄為boost的安裝目錄(G:\boost_1_55_0),輸入bootstrap.bat
3、執行完上述命令後會在安裝目錄下生成如下exe文件
4、繼續在DOS窗口中輸入bjam.exe,程序會根據你當前安裝的編譯環境(vs2010,vs2012,vs2013)等自動選擇與之相適應的庫文件和包含文件等。
此過程大概需要20分鍾左右。根據下面第二個圖片可以算出我的編譯環境為MSVC-12.0即VS2013.
5、20分鍾左右後可以看到如下界面,說明Boost庫配置完成
三、安裝CGAL
1、下載CGAL,這里我下載的是CGAL-4.4這個版本(當前最新的)
2、安裝位數選擇32位
如果選擇64位進行安裝,則會在以後配置完畢後出現類似「無法識別的外部符號。。。」等問題,很難進行正確配置。所以這里最好全部選擇32位進行安裝。
3、安裝目錄我選擇C:\Program Files\CGAL-4.4
安裝在其他目錄時可能會出現用Cmake編譯時出現好幾外錯誤。可以嘗試通過安裝在C盤進行解決。
4、選擇如下幾項,單擊下一步
5、安裝完成後可能會出現如下提示,則需要手動添加F:\CGAL-4.4\auxiliary\gmp\lib到Path變數中
6、此時CGAL安裝完成
四、用Cmake配置CGAL庫
1、打開Cmake軟體選擇如下目錄,註:兩個目錄是相同的
2、單擊「config"-選擇如下編譯器(默認是32位,與前面安裝軟體一定要保持一致)
3、單擊確定後,出現如下界面說明配置成功
4、找到如下圖的這一項,選中,再次單擊"config"進行配置
5、單擊Generate,此時界面應如下。
6、此時在CGAL安裝目錄下出現如下文件:CGAL.sln
7、打開此文件,此時編譯器會自動組建一個解決方案。如下圖
8、選擇32位debug模式,按F7進行編譯,編譯完成後如下圖所示,表明CGAL至此完全配置成功。
五、舉例測試CGAL
新建一個控制台應用程序,並添加如下代碼
#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}
添加包含庫目錄,操作如下圖,注意紅色框中的添加內容
添加附加庫目錄,操作如下圖,注意紅色框中的添加內容
直接編譯運行此時會出現如下錯誤,別急,我們離成功只差一步了
>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" (__imp_??0QColor@@QAE@HHHH@Z),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" (__imp_??0QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" (__imp_??1QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" (?winEvent@QWidget@@MAE_NPAUtagMSG@@PAJ@Z)
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" (?windowActivationChange@QWidget@@MAEX_N@Z)
1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 個無法解析的外部命令
添加附加依賴項。
選擇「鏈接器」---「輸入」,在其中輸入如下添加LIB文件
phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib
再次編譯運行,即可大功告成了!
