前段時間幫助組內其他人解決了c-sdk交叉編譯的問題,今天突然登入csdn看到部落格竟然一年沒有更新了,今天就記錄一下吧。
編譯出來的執行檔案在arm-linux下不能執行,最有可能的點就是交叉編譯鏈沒有找對,在ubuntu的終端編譯,用的還是ubuntu下的gcc,並沒有是使用你的交叉編譯arm-gcc。
官方也有詳細的make編譯說明
正常情況下依照上面的教程應該是沒有問題的,但是我們的專案比較特殊,之前的手順也是從日本過來的,交叉編譯鏈也是國外的廠商提供的,所以一些交叉編譯的環境變數很重要。手順裡修改了tools/board/config.***.yyy檔案,追加了一些交叉編譯用的變數,所遇到的第乙個坑就是沒有正確的在終端給新追加的變數賦值,賦正確的值,只有這樣才能找到正確的gcc和一些標頭檔案和lib庫。所以在做交叉編譯時,一定要先知道想用的gcc在**,它的庫和標頭檔案在**,然後正確的環境變數。
第二個坑就是在修改後config.***.yyy就應該再次make reconfig一下,重新選擇一下config.***.yyy 這樣在make時才會使用到新加的那些變數,然後使用正確的gcc.
反正記住一句話,編譯出來的可執行檔案不能在arm環境下執行,那一定是沒有正確的使用交叉編譯鏈,那麼一定是你的哪一步沒有配對。(涉及到公司的東西,很細節的就不詳細的說了,實際上在編譯時卡住,我覺得最大的原因就是太堅信日本的手順,sdk是阿里提供的,它也提供了完整的說明,詳細的研究研究,應該不難編譯出來.a檔案)
阿里雲物聯網平台CSDK原始碼剖析(1)
阿里雲物聯網平台csdk原始碼剖析 1 阿里雲物聯網平台csdk原始碼剖析 2 阿里雲物聯網平台csdk原始碼剖析 3 本文所用 均採自阿里雲物聯網官方 原始碼版本為3.x 子配置如下,mqtt configurations配置 device model配置 iot linkkit open用於開啟...
裝置上雲之裝置端技術
三條物聯網落地難點 1 需要接入的感測器及智慧型儀表種類繁多,物理通訊鏈路多樣,通訊協議也各有不同 超級聯結器 打通生產裝置 資訊孤島 即使使用了自動化生產線和工業機械人,但這些生產裝置之間不互通,都還是資料孤島。裝置多由德國 日本等多個國家的不同廠商製造,裝置之間有多達數百種不同的通訊協議,缺乏統...
交叉編譯mysql客戶端libmysql
交叉編譯mysql客戶端libmysql 確定linux安裝好了cmake,ubuntu下安裝cmake sudo apt get install cmake 設在好arm linux export path usr local arm 4.3.2 bin path tar xvzf mysql c...