et框架編譯
㈠ NCNN編譯問題匯總
錯誤如下:
./obj/local/armeabi-v7a/libetcard.a(EtEncryptedDataReader.o):EtEncryptedDataReader.cpp:typeinfo for EtCard::EtEncryptedDataReader: error: undefined reference to 'typeinfo for etncnn::DataReader'
collect2.exe: error: ld returned 1 exit status
解決方案:
① 找到編譯的Application.mk文件
② 找到如下參數配置: APP_CPPFLAGS := -frtti -std=c++11
③ 刪除黑體部分"-frtti"配置
以上方法以-frtti為例,解決思路由於編譯ncnn-include庫的時候在編譯命令中沒有加-frtti的,所以導致ndk編譯ncnn出現
無法找到此庫,因此會出現如上相似的錯誤
錯誤如下:
解決方案:
Application.mk文件中添加->APP_CPPFLAGS += -fexceptions
如下圖,編譯發現兩個方法找不到。
我們可以分析的點如下:
① 找不到2個方法,但是其他同類的ncnn方法沒有異常
② 仔細檢查頭文件,是否包含net.h的介面定義,結果是都引入了(否則其他方法會報錯)
③ 最後分析無果,可以確定的是,這兩個方法,確實目前的環境下無法鏈接到。
以上分析之後, 總結我們其他方法可以正常引用,說明ncnn庫鏈接沒問題,其次,只有這兩個方法找不到,說明我們目前編譯環境可能不包含此方法。
所以我們可以得知方法來源為ncnn的庫,也就是說我們當前使用的ncnn庫不包含此方法。
有了這個思路我們嘗試更新了一下新的ncnn庫,最終問題得到解決可以編譯成功。
㈡ et200m鏄浠涔堟ā鍧
鎺ュ彛妯″潡銆傛ā鍧楋紙mole錛夌郴鎸囩敱澶嶆暟涓鍏峰熀紜鍔熻兘涔嬬粍浠訛紝緇勪歡緇勬垚涔嬪叿鐗瑰畾鍔熻兘涔嬬粍浠訛紝璇ョ粍浠剁敤浠ョ粍鎴愬叿瀹屾暣鍔熻兘涔嬬郴緇熴傝懼囨垨紼嬪簭錛涙硾鐢ㄤ簬鍚勮蔣錛岀‖浠墮嗗煙銆傞氬父浠ュ叾鍔熻兘錛岀敤閫斿懡鍚嶏紝濡傛暎鐑妯″潡銆傚瓨鍌ㄥ櫒妯″潡銆傛父鎴忔ā鍧楃瓑銆傚湪紼嬪簭璁捐′腑錛屼負瀹屾垚鏌愪竴鍔熻兘鎵闇鐨勪竴孌電▼搴忔垨瀛愮▼搴忥紱鎴栨寚鑳界敱緙栬瘧紼嬪簭銆
鎺ュ彛妯″潡銆傛ā鍧楋紙mole錛夌郴鎸囩敱澶嶆暟涓鍏峰熀紜鍔熻兘涔嬬粍浠訛紝緇勪歡緇勬垚涔嬪叿鐗瑰畾鍔熻兘涔嬬粍浠訛紝璇ョ粍浠剁敤浠ョ粍鎴愬叿瀹屾暣鍔熻兘涔嬬郴緇熴傝懼囨垨紼嬪簭錛涙硾鐢ㄤ簬鍚勮蔣錛岀‖浠墮嗗煙銆傞氬父浠ュ叾鍔熻兘錛岀敤閫斿懡鍚嶏紝濡傛暎鐑妯″潡銆傚瓨鍌ㄥ櫒妯″潡銆傛父鎴忔ā鍧楃瓑銆傚湪紼嬪簭璁捐′腑錛屼負瀹屾垚鏌愪竴鍔熻兘鎵闇鐨勪竴孌電▼搴忔垨瀛愮▼搴忥紱鎴栨寚鑳界敱緙栬瘧紼嬪簭銆傝呴厤紼嬪簭絳夊勭悊鐨勭嫭絝嬬▼搴忓崟浣嶏紱鎴栨寚澶у瀷杞浠剁郴緇熺殑涓閮ㄥ垎銆傛ā鍧楋紝鍙堢О鏋勪歡錛屾槸鑳藉熷崟鐙鍛藉悕騫剁嫭絝嬪湴瀹屾垚涓瀹氬姛鑳界殑紼嬪簭璇鍙ョ殑闆嗗悎錛堝嵆紼嬪簭浠g爜鍜屾暟鎹緇撴瀯鐨勯泦鍚堜綋錛夈傚畠鍏鋒湁涓や釜鍩烘湰鐨勭壒寰侊細澶栭儴鐗瑰緛鍜屽唴閮ㄧ壒寰併傚栭儴鐗瑰緛鏄鎸囨ā鍧楄窡澶栭儴鐜澧冭仈緋葷殑鎺ュ彛錛堝嵆鍏朵粬妯″潡鎴栫▼搴忚皟鐢ㄨユā鍧楃殑鏂瑰紡錛屽寘鎷鏈夎緭鍏ヨ緭鍑哄弬鏁般傚紩鐢ㄧ殑鍏ㄥ矓鍙橀噺錛夊拰妯″潡鐨勫姛鑳斤紱鍐呴儴鐗瑰緛鏄鎸囨ā鍧楃殑鍐呴儴鐜澧冨叿鏈夌殑鐗圭偣錛堝嵆璇ユā鍧楃殑灞閮ㄦ暟鎹鍜岀▼搴忎唬鐮侊級銆