阿里雲設備端C-SDK交叉編譯

前段時間幫助組內其他人解決了C-SDK交叉編譯的問題,今天突然登錄CSDN看到博客竟然一年沒有更新了,今天就記錄一下吧。

編譯出來的執行文件在arm-linux下不能執行,最有可能的點就是交叉編譯鏈沒有找對,在Ubuntu的終端編譯,用的還是Ubuntu下的gcc,並沒有是使用你的交叉編譯arm-gcc。

https://help.aliyun.com/document_detail/96623.html?spm=a2c4g.11186623.2.16.57b52cf0oIzUyY

這個是設備端C-SDK下載的路徑,此次使用的是3.0.1

官方也有詳細的Make編譯說明

https://help.aliyun.com/document_detail/97558.html?spm=a2c4g.11186623.2.25.1d1b492bUgBvwT

正常情況下依照上面的教程應該是沒有問題的,但是我們的項目比較特殊,之前的手順也是從日本過來的,交叉編譯鏈也是國外的廠商提供的,所以一些交叉編譯的環境變量很重要。手順裏修改了tools/board/config.xxx.yyy文件,追加了一些交叉編譯用的變量,所遇到的第一個坑就是沒有正確的在終端給新追加的變量賦值,賦正確的值,只有這樣才能找到正確的gcc和一些頭文件和lib庫。所以在做交叉編譯時,一定要先知道想用的gcc在哪裏,它的庫和頭文件在哪裏,然後正確的環境變量。

第二個坑就是在修改後config.xxx.yyy就應該再次make reconfig一下,重新選擇一下config.xxx.yyy 這樣在make時纔會使用到新加的那些變量,然後使用正確的GCC.

反正記住一句話,編譯出來的可執行文件不能在arm環境下執行,那一定是沒有正確的使用交叉編譯鏈,那麼一定是你的哪一步沒有配對。(涉及到公司的東西,很細節的就不詳細的說了,實際上在編譯時卡住,我覺得最大的原因就是太堅信日本的手順,SDK是阿里提供的,它也提供了完整的說明,詳細的研究研究,應該不難編譯出來.a文件)

發佈了10 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章