海思交叉編譯Dlib

2021-10-05 09:12:09 字數 3246 閱讀 8728

@海思交叉編譯dlib

海思交叉編譯器:本文使用arm-hisiv300-linux-gcc arm-hisiv300-linux-g++

在ubuntu終端執行cmake-gui命令:cmake-gui

將下圖中標記0n 改為 off ,避免後面編譯示例程式出錯。

在build目錄下執行make命令後,出現第乙個錯誤

解決辦法:在dlib-19.13目錄下,開啟cmakelists.txt,新增add_compile_options(-d_glibcxx_use_c99)

『round』不是『std』的成員

解決辦法:在dlib/geometry/rectangle.h 新增下圖標記**

error: no type named 『exception_ptr』 in namespace 『std』; did you mean 『exception』?解決辦法:找到檔案atomic_lockfree_defines.h

例如我的檔案在:/opt/hisi-linux/x86-arm/arm-hisiv300-linux/arm-hisiv300-linux-uclibcgnueabi/include/c++/4.8.3/bits/atomic_lockfree_defines.h

在atomic_lockfree_defines.h內找到**段

#define atomic_int_lock_free __gcc_atomic_int_lock_free
改為

#define atomic_int_lock_free 2
新建test檔案,將dlib-19.13/examples/dnn_face_recognition_ex.cpp複製到test檔案下。

建立檔案:cmakelists.txt

cmake_minimum_required

(version 2.8.4)

project

(dnn_face_recognition_ex)

add_compile_options

(-d_glibcxx_use_c99)

find_package

(dlib required)

include_directories($)

add_executable

(dnn_face_recognition_ex dnn_face_recognition_ex.cpp)

target_link_libraries

(dnn_face_recognition_ex $

)

終端在test目錄下執行命令:

cmake . -dcmake_cxx_compiler:filepath=arm-hisiv300-linux-g++ -dcmake_c_compiler:filepath=arm-hisiv300-linux-gcc
make
錯誤: #error "dlib_no_gui_support is defined so you can't use the gui code.  turn dlib_no_gui_support off if you want to use it."
解決辦法:開啟檔案dlib/gui_core/gui_core_kernel_2.h,注釋如下圖2行**

注釋後,需要重新編譯。

錯誤 對『std::__exception_ptr::exception_ptr::exception_ptr(std::__exception_ptr::exception_ptr const&

)』未定義的引用

開啟檔案:/usr/local/include/dlib/threads/thread_pool_extension_abstract.h此位址是sudo make install後的位址,新增如下**:

#include 

namespace std

exception_ptr::~exception_ptr(

) exception_ptr::exception_ptr(const exception_ptr& e)

:_m_exception_object(e._m_exception_object)

exception_ptr& exception_ptr::operator=

(const exception_ptr& e)

void exception_ptr::swap(exception_ptr& e)

} //__thread exception_ptr g_cur_e;

exception_ptr current_exception(

) void rethrow_exception(exception_ptr e)

}

本文是我自己編譯過程遇到問題,如有錯誤請提示!

交叉編譯boost庫for海思

2 執行boost解壓目錄下的 bootstrap.sh 此時形成bjam檔案和project config.jam 3.編輯project config.jam 僅修改using gcc這行。因為我使用的是arm hisiv100nptl linux g 所以將其改以下即可 using gcc a...

海思的3516的交叉編譯工具無法執行

最近想編譯海思的hisi3516cv500的東西,但是安裝了編譯鏈之後發現無法執行,報錯如下 bash opt hisi linux x86 arm arm himix200 linux bin arm himix200 linux gcc cannot execute binary file ex...

基於海思開發板進行OPENCV交叉編譯時的問題

之前一直在摸索,為什麼使用海思3515官方提供的編譯器在對opencv進行交叉編譯時會出現各種莫名其妙的錯誤。後來買了一塊3520d的開發板,商家為我提供了新版的sdk,編譯器版本公升級為4.4.1。當我用新版的編譯器再進行交叉編譯時,竟然一路順暢,很容易地就完成了整個編譯過程。再回過頭來,反省之前...