目次
コンパイル環境を準備する(共通)★消していいと思う変わりに概要を記載Pythonマネして
コンパイル前に、SDKの環境設定を行ってください。
$ cd iPRO_CAMERA_SDK_Vxxx $ source setup_env.sh ipro-ambaCV2X
概要
C/C++版のAdamAppで外部ライブラリを使用する場合は、C/C++モジュールのコンパイルが必要です。
本チュートリアルでは、C/C++用外部ライブラリをビルドするための環境構築~モジュールのコンパイルまでの手順を解説します。
チュートリアルで使用する外部ライブラリ
★あとで
★あとで
C/C++モジュールをコンパイルする(OpenCV)
OpenCVの詳細については公式サイトよりご確認ください。
コンパイル環境を準備する
OpenCVのビルドには「cmake」が必要ですので、インストールします。
$ sudo apt-get install cmake
OpenCVのソースコードをダウンロードする
公式サイトからOpenCVのソースコードをダウンロードします。
このチュートリアルでは、例として4.7.0を使用します。
ダウンロードするバージョンは、使用する機能に合わせて選択してください。
OpenCVのビルドのため、サンプルのMakefileとcmakeファイルをSDKに同梱しています。
ダウンロードしたソースコードを下記のフォルダにコピーしてください。
external/build/opencv/aarch64-linux-gnu
Makefileの設定
Makefileの2行目をダウンロードしたバージョンに合わせて編集します。
OPENCV_DIR = opencv-4.7.0
また、OpenCV モジュールのビルド オプションをカスタマイズします。
Makefile で「-D」を検索すると、オプションを確認できます。
本当に必要なオプションのみを有効にしてください。
不要なオプションが含まれると、OpenCV ライブラリのサイズが必要以上に大きくなり、アプリに搭載できなくなります。
cmakeファイルは必要に応じて編集してください。
ビルドを実行する
OpenCVをビルドします。
$ make $ make install
ライブラリは「install」フォルダに作成されています。
アプリで使用する
ビルドしたライブラリやヘッダーファイルをアプリフォルダにコピーします。
このチュートリアルでは、サンプルアプリ「opencv_edge_detection_app」を例にします。
ライブラリのコピー
$ cp -a install/lib/libopencv_world.so* ../../../../src/adamapp/opencv_edge_detection_app/external/lib/aarch64-linux-gnu
共有フォルダなどを使用し、Windowsのエクスプローラーを使ってコピーすると、シンボリックリンクが正しくコピーされないことがありますので、Linux上でコピーしてください。
ヘッダーファイルのコピー
$ cp -r install/include/opencv4/opencv2 ../../../../src/adamapp/opencv_edge_detection_app/external/include
Curl
libcurlのソースコードをダウンロードする
公式サイトからlibcurlのソースコードをダウンロードします。
このチュートリアルでは、例として7.78.0を使用します。
ダウンロードするバージョンは、使用する機能に合わせて選択してください。
下記にフォルダを作成し、ダウンロードしたソースコードをコピーした後、展開します。
SDK/external/build
$ mkdir curl $ cd curl $ cp [任意のフォルダ]/curl-7.87.0.tar.gz ./ $ tar -zxvf curl-7.87.0.tar.gz $ cd curl-7.87.0
Configureを実行する
[--host]オプションは必ずつけてください。
そのほかのオプションは使用する機能に合わせて選択してください。
OpenSSLなしの場合
$ ./configure --host=aarch64-linux-gnu --without-ssl
OpenSSLありの場合
$ ./configure --host=aarch64-linux-gnu --with-ssl=[OPENSSL_DIR]
[OPENSSL_DIR]
は任意のディレクトリ
ビルドを実行する
curlをビルドします。
$ make
アプリで使用する
ビルドしたライブラリやヘッダーファイルをアプリフォルダにコピーします。
このチュートリアルでは、サンプルアプリ「update_sample_app」を例にします。
ライブラリのコピー
$ cp -a lib/.libs/libcurl.so* ../../../../src/adamapp/update_sample_app/external/lib/aarch64-linux-gnu
共有フォルダなどを使用し、Windowsのエクスプローラーを使ってコピーすると、シンボリックリンクが正しくコピーされないことがありますので、Linux上でコピーしてください。
ヘッダーファイルのコピー
$ cp -r include/curl ../../../../src/adamapp/update_sample_app/external/include
SQLite
SQLiteのソースコードをダウンロードする
公式サイトからSQLiteのソースコードをダウンロードします。
このチュートリアルでは、例として3.40.0を使用します。
ダウンロードするバージョンは、使用する機能に合わせて選択してください。
下記にフォルダを作成し、ダウンロードしたソースコードをコピーした後、展開します。
SDK/external/build
$ mkdir sqlite $ cd sqlite $ cp [任意のフォルダ]/sqlite-autoconf-3400000.tar.gz ./ $ tar -zxvf sqlite-autoconf-3400000.tar.gz $ cd sqlite-autoconf-3400000.tar.gz
Configureを実行する
[--host]オプションは必ずつけてください。
そのほかのオプションは使用する機能に合わせて選択してください。
$ ./configure --host=aarch64-linux-gnu
ビルドを実行する
SQLiteをビルドします。
$ make
アプリで使用する
ビルドしたライブラリやヘッダーファイルをアプリフォルダにコピーします。
このチュートリアルでは、サンプルアプリ「sqlite_app」を例にします。
ライブラリのコピー
$ cp -a .libs/libsqlite3.* ../../../../src/adamapp/sqlite_app/external/lib/aarch64-linux-gnu
ヘッダーファイルのコピー
$ cp sqlite3.h ../../../../src/adamapp/sqlite_app/external/include