我目前正在嘗試編譯一個項目並將其移植到部署基於Linux的系統的32位目標。從64位Linux交叉編譯特定arm目標的Qt
我的主機運行x86_64 Debian Stretch,我的目標是運行定製Linux的Atmel SAMA5d2。 我的交叉工具鏈是從buildroot生成的。
目前我能夠使用buildroot生成的工具鏈交叉編譯目標應用程序。不過,我想整合Qt併爲目標構建Qt應用程序。
爲了能夠爲目標平臺構建我的應用程序,我需要爲我的目標編譯Qt。 爲此,我必須告訴Qt使用buildroot工具鏈,而不是原生工具鏈。
從我發現我要麼提供-device <device> --device-option CROSS_COMPILE=$TOOLCHAIN_PATH
或-xplatform <mkspec>
來配置預期的工具鏈Qt。
顯然我的目標不在qtbase/mkspecs/devices
下的設備列表中,所以我認爲最好的解決方案是爲我的目標創建一個mkspec。
我的命令應該是這樣的:
./configure -xplatform <my_mkspec> -embedded arm -prefix <customQtPath>
不過我有點失去了,我不知道如何僅從文件和我發現谷歌搜索通過我的問題,做到這一點。
另外我需要指定的目標是32位爲armv7只有32bits?
我很樂意在這方面提供一些幫助。 謝謝。
我以爲設備必須位於'qtbase/mkspecs/devices'下的列表中,如文檔中所述:_italic_設備通過配置工具的-device參數進行選擇。這個參數後面的名字必須至少部分地匹配devices._italic_ 下的一個子目錄。那麼我應該在這個位置創建規範嗎?另外,我在哪裏可以找到有關所有這些qmake變量的含義和用法的文檔? – Arkaik
是的,把你放在那裏。有一個qmake手冊,但大多數沒有記錄。閱讀其他芯片的規格和實驗。 –
謝謝,我會嘗試一下,然後回來告訴你我是否成功了,但是可能需要一段時間,因爲我有修改要在buildroot中添加Qt。 – Arkaik