天天看點

關于移植jSON編譯時報錯sbrkr.c:(.text+0xc): undefined reference to `_sbrk'處理

最近有個項目需要用到jSON函數,在移植了jSON後編譯報錯如下:sbrkr.c:(.text+0xc): undefined reference to `_sbrk'。

通過百度查詢知道原來是GCC編譯器不支援malloc、free、memcpy、strlen等函數導緻的,正常在嵌入式系統開發過程中都會遇到這個問題。

正好這個項目是使用移遠M26子產品的OpenCPU開發的,好巧不巧的我就遇到了這個問題。網上解決的方法挺多,五花八門,我感覺不需要那麼麻煩 ,源碼又不長、簡單粗暴一點(我比較喜歡的處理事情的方式之一)。既然是不支援導緻的,那就想辦法找一下替代函數好了,正好OpenCPU SDK提供的檔案中有相關的實作函數。是以我就直接用相關函數替換進去,編譯通過了,項目得以順利進行。下面上傳一下源碼和移植好的代碼。

cJSON源碼(c語言版)

cJSON源碼(Opencpu)

如有疑問,歡迎大家私信讨論。