出現錯誤/ncnn/src/cpu.cpp:426: undefined reference to `stderr'完美解決方案。
前提情況
1。 android studio 編譯器
2。 利用ncnn前向推理框架進行移植caffemodel到android手機端
3。 使用cmake進行編譯,NDK java的c++介面
出現問題
/ncnn/src/cpu.cpp:426: undefined reference to `stderr'(主要問題根源)
具體問題如下(為了大家能夠看得清楚,這裡我把背景調成白的了,平時都是黑的)
分析問題
首先出現問題的過程是因為我這邊用的ncnn最後make build的平臺是armeabi-v7a,為大多數android手機的硬體cpu結構,但是此處專案需要需要用到RK3399硬體,查之後得知cpu架構為arm64-v8a,所以需要更改一些檔案(ncnn make-build時的libncnn.a檔案和include資料夾,具體可參考ncnn使用),還需要更改一些路徑CMakeList中的路徑以及build-gradle檔案中的平臺名稱如下圖:
這樣應該如願以償進行編譯專案工程的時候就會Cmake成功得到libMobileNetssd.so檔案
並且此檔案在如下圖位置,當然畫紅框的資料夾名稱應該為此時的cpu框架arm64-v8a
好了!
現在已經分析好了,從前到尾整個過程,但是最後編譯會出現以前error
可能的問題出在分析如下
- 路徑沒有改,檔案沒有改(這裡我從前到尾好好走了一遍是都改好的,並且路徑正確)
- 缺少某些低版本的檔案,但是最後提示error沒有顯示,說明不缺檔案
- SDK的版本問題
為啥會有最後一種思考呢?因為cmake的用法我已經很熟悉,深度學習框架caffe和前向推理ncnn的用法都不存在問題,所以唯一的問題就應該存在於sdk某些版本支援問題(android這方面很常見)
解決
思考
我的想法是 因為這個cpu架構出的可能比較晚,或者說androd sdk高版本才支援所以,需要把最小的androidsdk版本調高即可
相關推薦
出現錯誤/ncnn/src/cpu.cpp:426: undefined reference to `stderr'完美解決方案。
前提情況 1。 android studio 編譯器 2。 利用ncnn前向推理框架進行移植caffemodel到android手機端 3。 使用cmake進行編譯,NDK java的c++介面 出現問題 /ncnn/src/cpu.cpp:426: undef
undefined reference to `__gnu_mcount_nc'的解決 在編譯核心時出現瞭如下錯誤:
在編譯核心時出現瞭如下錯誤: init/built-in.o: In function `do_one_initcall': calibrate.c:(.text+0x14): undefined reference to `__gnu_mcount_nc' init/built-in.o: In
Caffe-SSD錯誤:.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::cpp_reg
編譯Caffe-SSD時遇到以下錯誤: .build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::cpp_regex_traits_implementation<char&g
linux 連結庫檔案出現“undefined reference to" 問題的解決方法
最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func' 關於undefined reference這樣的問題,大家其實經常會遇
Qt中出現qt : undefined reference to `vtable forXXX解決辦法
我們在Qt中要使用訊號和槽的時候必須要新增Q_OBJECT巨集,否則會報錯。但是有時候我們添加了Q_OBJECT的時候,我們會發現同樣會報錯,報錯如下所示: undefined reference to 'vtable for ***(類) 面對這個報錯
Linux編譯程式報錯 undefined reference to error 的解決方法
對於我這個剛入IT行業不就得新手來說,在linux下連結庫的時候總是會遇到各種各樣奇葩的問題,最多的就是“undefined reference to”和“cannot find”這兩類,層出不窮,總是在我即將完成工作的時候給我當頭一棒,讓我欲罷不能。這不,這幾天編譯linux下一個專案時又遇到難題
gcc "undefined reference to" 問題解決方法(使用庫)
最近在Linux下程式設計發現一個詭異的現象,就是在連結一個靜態庫的時候總是報錯,類似下面這樣的錯誤: (.text+0x13): undefined reference to `func'
undefined reference to `av_register_all' 問題解決
之前一直在eclipse上使用ndk前一陣轉到Android studio上 使用ndk 被這個undefined reference to `av_register_all' 問題困擾了很久,一度認為是路徑沒有配置好後來發現解決方法#include <libavco
關於undefined reference to `inflate'問題解決方法
今天編譯一個程式出現上面的錯誤,在編譯環境中已經加入了連結對應的壓縮庫,後來發現只有在主程式中呼叫一次同壓縮相關的函式即可,但是我實際上在主檔案中並不需要,解決方法為寫一個不被呼叫的函式,裡面內容為: void do_nothing() { ZipArchive zip; m
C 語言 undefined reference to 'sqrt' 問題解決
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少? 1.程式分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後 的結果滿足如下條件,即是結果。請看具體分析: 2.程式原始碼
undefined reference to `log' 問題解決
嘗試gcc 編譯出現問題。如:gcc -o lz77 main.o lz77.o tree.o bitio.obitio.o: In function `bitof':bitio.c:(.text+0xd): undefined reference to `log'bitio
ubuntu 下沒有pthread庫以及報undefined reference to 'pthread_create'的解決方法
最近在Ubuntu下編譯一個程式,需要使用多執行緒庫pthread,但是編譯時總是提示“undefined reference to 'pthread_create'”的錯誤,如下圖所示: 要解決這
undefined reference to 'function'及解決辦法
在開發演算法過程中,自己寫的函式編譯生成一個動態共享連結庫檔案.so. 然後由其他模組呼叫其中的函式時出現undefined reference to : function(要呼叫的函式)錯誤提示. 反覆檢查函式已經正確編寫,呼叫命令也沒問題. 使用nm命令檢查發現也沒問題,
關於Cmake 連結靜態庫出現undefined reference to錯誤
在編寫一個C++專案的時候,使用cmake管理工程,成功連結一個靜態庫,但是在編譯時仍然出現undefined reference to 的錯誤。 最終發現問題是由於c和c++混編導致的。 解決方案: 由於我連結的庫是使用c語言編寫,所以需要在include標頭檔案時加上 #
Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。
Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。 編寫好執行緒程式碼,進行編譯 gcc xiancheng.c -o xiancheng 出
PHP 編譯安裝時出現 undefined reference to `libiconv' 錯誤的解決方法
原文:http://flyfishes.blog.51cto.com/3527694/819693 手動編譯PHP安裝時遇到如下錯誤 /usr/local/src/php-5.3.10/ext/xmlrpc/libxmlrpc/encodings.c:73: und
GCC編譯uboot出現(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'錯誤的解決辦法
/opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exid
linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
water span x86 code bject data- ace 技術分享 inux 解決cocos2d-x中編譯出現的一個小問題 對於cocos2d-x 2.×中編譯中,若頭文件裏引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到例
[ c++] cmake 編譯時 undefined reference to `std::cout' 錯誤的解決方案
bin cut () cmake fin epo linking com urn cmake .. 和 make 之後,出現如下錯誤 Linking CXX executable ../../../bin/ModuleTest CMakeFiles/Modu
啟動Apache出現錯誤Port 80 in use by "Unable to open process" with PID 4!
pre 找到 with pen nbsp art configure style post 22:15:30 [Apache] Problem detected! 22:15:30 [Apache] Port 80 in use by "Unable to open