編譯qt64位
① qt平台編寫的程序,編譯生成的可執行文件,可以隨意移植嗎
Qt的跨平台,是指「一次編寫,到處編譯」,也就是說你寫的代碼一般不需要做特殊處理就可以在不同的平台上用Qt進行編譯。
對於你所說的問題,你在win7 64位系統下編譯的程序,要看你編譯生成的是32位程序還是64位的程序。如果是32位的程序,那麼在32位和64位windows系統下運行都是沒問題的;如果是64位的程序,就只能在64位windows系統上運行了。
如果你的程序沒有什麼配置上的特殊要求,當然就不需要相關的配置了,只要把相應的dll文件拷貝到你的程序運行目錄下就可以了,你可以到網上搜下Qt程序的發布。
② qt 64 位編程和32位編程的區別
一、64位編譯器系統下可以使用64位的無符號或有符號變數了。
二、64位操作系統提供了更多的編程介面API,這些多出來的介面主要是涉及將32位數據類型擴展為64位的問題了。比如原來關於內存管理相關的函數,參數是32位的,在64位操作系統下就需要提供參數為64位的管理函數了等等。
③ (未完)ubuntu20.04 qt6.2.4 aarch64 開發編譯環境配置
install QT6
更新
下載安裝工具
文件許可權
運行在線安裝文件
如果遇到問題:
重新安裝libxcb-xinerama文件
重新運行
輸入賬號,然後安裝。選擇一個版本,如6.2.4整個勾上,然後Next到下載界面。
install opencv
下載opencv
解壓到指定文件夾
新建build文件夾,cmake編譯
編譯程序,編譯完成後安裝
install eigen
下載eigen release
解壓
編譯
完成eigen3的安裝
QT include opencv eigen項目遷移到ubuntu後的編譯中的報錯問題
就可以正常啟動qt creator了。
解決方法:
通常安裝後就能解決問題,如果不行,考慮下面的軟鏈接方法。
詳細見 qt構建遇到 cannot find -l xxx 問題_qt cannot find -l-CSDN博客、 linux的Qt編譯出現:-1: error: cannot find -lGL問題的解決方法-CSDN博客
雖然教程是用的野火魯班貓,但是方法是通用的
安裝cmake及其他
查看cmake版本
關於燒錄Raspberry pi Image
樹莓派插入SD卡並通電。(使用 Raspberry Pi Imager完成SD鏡像燒錄。)
可以下載( Ubuntu Lts)作為燒錄鏡像
Ubuntu server無界面,使用SSH遠程訪問,使用finalshell:
IP查看tplink中的樹莓派IP,埠默認是22
QT creator添加Device
添加設備,可以在區域網中找到設備。
打開設置,然後add一個Device
需要填寫IP,埠,user name, 如果沒有key,就生成一個key file,然後鏈接,期間需要輸入username對應的密碼。出現下面窗口就是配置好了。
詳細可以看這個鏈接 7. 遠程連接 - [野火]嵌入式Qt應用開發實戰指南-基於LubanCat-RK開發板 文檔
qt creator kits交叉編譯
PC的Ubuntu20.04中下載交叉編譯包 arm-linux-gcc,然後在ARM板卡上部署測試。參考這個網址:
aarch64對應教程如下:
3. Qt程序編譯 — [野火]嵌入式Qt應用開發實戰指南—基於LubanCat-RK開發板 文檔 (embedfire.com)
安裝交叉編譯器:
先看看自己虛擬機(PC)的信息
然後看下嵌入式設備(arm64)的信息
針對arm64嵌入式系統,使用Ubuntu20.04系統apt 安裝交叉編譯器, 其安裝命令是
通過這個指令獲取就不用下面的操作下載壓縮包了,
從網盤獲取交叉編譯器、Qt庫文件(針對aarch64平台)、sysroot文件 # 復制文件到虛擬機系統中
查看解壓到的位置
查看剛才解壓的文件。
安裝完了之後在terminal中輸入aarch64 + TAB,如下就是安裝成了:
編譯源碼測試:
先寫個c文件交叉編譯試試
main.cpp內容:
編譯通過後通過file指令查看文件類型是否是ELF:64bit LSB shared object,ARM aarch64...。如果是,則完成源碼編譯。
編譯後生成了main可執行文件,拷貝到arm64平台測試,查看輸出:hello world!!!。
Qt編譯arm64(aarch64)環境搭建
下載qt6.2.4源代碼,在虛擬機上編譯aarch64版本的庫文件
打開QT Creator,打開kits配置套件
如下添加一個/opt目錄下的qmake
添加gcc g++ aarch64編譯器
添加一個構建套件kit, 如下:
源程序選擇構建套件並運行:
在嵌入式設備linux系統上運行編譯好的程序:
復制Qt庫到板卡,然後設置相應的環境變數,就可以運行程序。 先復制前面編譯的Qt程序到板卡,然後簡單運行程序:
使用winscp拷貝依賴文件到嵌入式設備上,如樹莓派:
解壓完成後,設置該庫為環境變數
並重新運行程序
如果要永久變更,就在~/.bashrc中寫入
終端運行:
板卡上可能要安裝一些庫