cjson庫版本不一致,導致解析失敗

2021-10-01 12:01:42 字數 836 閱讀 1140

在編譯乙個程式demo的時候,需要繼承乙個第三方庫libexample.so,第三方庫用到了cjson,本身這個程式也用到了cjson,由於兩者用的cjson的版本不一致,導致json解析失敗……

第三方庫libexample.so使用的舊版本的cjson,cjson-types截圖如下:

程式demo使用的是新版本的cjson,cjson-types截圖如下:

用舊版本的cjson原始碼編譯到自己的**裡,編譯出libexample.so庫;

程式demo已經使用過新版本的cjson原始碼,但是又連線了上面編譯出來的libexample.so的庫,再次進行json解析,會發現libexample.so裡面解析cjson_number型別的節點的值會失敗;

然後重新用新版本的cjson原始碼編譯出libexample.so庫,再整合到上面的demo裡面,即可解析成功。

可以從上面兩個不同版本的cjson原始碼截圖的cjosn-types看出來:

這兩個版本的cjson types的值不一樣,比如cjson_number型別節點的值,舊版本的值是3, 新版本的值是8,

所以用舊版本編譯的libexample.so庫,整合到demo裡的時候,解析到cjson_number節點的時候,錯誤的使用值8而不是3,所以導致解析失敗

**裡一定要保持乙個版本的cjson;

版本混亂很容易造成奇怪的問題,而且這種問題往往還不容易排查!

mysql版本不一致,導致匯入sql資料失敗

異常資訊 result 1273 unknown collation utf8mb4 0900 ai ci 異常原因 匯出sql文字 或者同步資料庫時 源資料庫的版本和匯入資料的目標資料庫的版本不一致 我的目標資料庫是5.x的mysql,而源資料庫mysql是8.x版本 本地的mysql資料庫5.7...

master和minion版本不一致問題

問題 生產環境,不同系統伺服器安裝的salt minion不一致,導致部分功能無效 現像一 1,grains匹配失效 2,高版本python2.6不支援,centos6預設安裝2.6 解決 統一安裝2015.8.13版本 ubuntu16 wget o sudo apt key add deb xe...

NV顯示卡軟體版本不一致執行TensorFlow出錯

當使用nv顯示卡執行tensorflow出錯時,如下 failed s.ok could not find cudnncreate in cudnn dso dlerror cudnn 需要檢查cudnn的版本與cuda的版本一致。否則就會出上面這個錯誤。我這裡使用這兩個版本沒有問題 cuda 8....