可変ブログ

色々メモとか。とりあえず自分が分かるように。その後、なるべく人が見て分かるように。可変。

Geanyのインストールと自分の設定メモ。

環境

  • Ubuntu16.04



流れ

  • Geanyのインストール
  • プラグインのインストール
  • テーマのインストール
  • 設定



Geanyのインストール

sudo apt-get install geany



プラグインのインストール

sudo apt-get install geany-plugins



テーマのインストール

git clone https://github.com/codebrainz/geany-themes
mv ./geany-themes/colorschemes ~/.config/geany/
rm -r ./geany-themes



設定

テーマは、表示⇒色の設定からOblivion2にする。
設定は、編集⇒設定から以下のようにする。
f:id:shibafu3:20170720130930p:plain
f:id:shibafu3:20170720130940p:plain
f:id:shibafu3:20170720130947p:plain
f:id:shibafu3:20170720131000p:plain
f:id:shibafu3:20170720130902p:plain

プラグインは、ツール⇒プラグインマネージャーから以下のようにする。
f:id:shibafu3:20180222112831p:plain
f:id:shibafu3:20180222112844p:plain
f:id:shibafu3:20180222112852p:plain


Ubuntu16.04にEclipseを入れてみる。

環境

  • Ubuntu16.04



流れ

  • パッケージの更新
  • Eclipseのインストール
  • C++拡張ツールのインストール
  • 日本語化
  • エラーの対処



パッケージの更新

sudo apt-get update
sudo apt-get upgrade



Eclipseのインストール

sudo apt-get install eclipse



C++拡張ツールのインストール

sudo apt-get install eclipse-cdt



日本語化

日本語化ツールをインストールして /etc/eclipse.ini を編集する。

sudo apt-get install pleiades
sudo gedit /etc/eclipse.ini

エディタが開いたら下記を追記。

-javaagent:/usr/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar



エラーの対処

参考URL

このままだと自分の環境ではなぜか『JVM terminated. Exit code=1』とエラーが出てしまい落ちたり、『パースペクティブのオープンで問題が発生しました』とエラーが出たりするので、参考URLの通りに /etc/eclipse.ini から下記を削除。

-vmargs
-Xms40m
-Xmx256m




使い方はまた今度。


CeresSolverをUbuntu16.04にインストールする。

Google製の数値最適化ライブラリCeresSolverをUbuntuにインストールする。


環境

  • Ubuntu16.04



流れ

ほとんど公式に書いてある通りです。簡単です。

  • 依存関係のインストール
  • ソースのダウンロード、展開
  • ビルド、インストール
  • 実行

依存関係のインストール

パッケージを最新にして、
CMake、google-glog + gflags、BLAS & LAPACK、Eigen3、SuiteSparse and CXSparseをインストール。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev



ソースのダウンロード、展開

ここからソースをダウンロード。下記コマンドで展開。

tar zxf ceres-solver-1.12.0.tar.gz



ビルド、インストール

ビルド用のディレクトリを作ってCMakeでMakefileを作りビルド。

mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-1.12.0
make
make test

make testが正常に通ればビルド完了。

sudo make install

でインストール。


実行

適当にサンプルをコンパイルしてみます。

【参考URL】

参考URLからサンプルコードをお借りして、main.cppという名前で保存します。
以下のコマンドでコンパイル

g++ main.cpp  `pkg-config --cflags eigen3` `pkg-config --libs libglog` -lgflags -lceres -lpthread -fopenmp -lcholmod -lblas -llapack -lcxsparse

コンパイルのリンカーオプションが多く、pkg-configが使えるものと使えないものがあって少しハマりました。
自分の環境だとgflagsだったかのパスが通ってないなどでコンパイルが通リませんでした。
その場合は下記のようにして、LD_LIBRARY_PATH にgflagsのライブラリのパスを追加して下さい。
環境変数 LD_LIBRARY_PATH に /usr/lib/x86_64-linux-gnu を追加するため.bashrcに下記を追加。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu

.bashrcを読み直し。

source ~/.bashrc



UbuntuにOpenCV3.2とcontribをインストールする。

まとめはしましたが、まだ試してみていないのでハマる箇所とか抜けがあるかもしれません。


環境



流れ

  • Ubuntuのパッケージを最新にする。
  • gitとCmakeをインストールする。
  • 依存関係をインストールする。
  • OpenCVのソースとcontribのソースをダウンロードする。
  • Cmakeを使って自分の環境に合ったソースを生成する。
  • ソースをビルドする。
  • ビルドしてできたバイナリとヘッダを適切な場所に配置する。
  • 配置したバイナリとヘッダのパスを通す。



Ubuntuのパッケージを最新にする。

書きコマンドでUbuntuに入っているパッケージを最新にします。

sudo apt-get update
sudo apt-get upgrade



gitとCmakeをインストールする。

githubからソースをダウンロードするgitと、自分の環境に合ったソースを生成するCmakeをインストールします。

sudo apt-get install git
sudo apt-get install cmake



依存関係をインストールする。

OpenCVのビルドに必要なライブラリなどをインストールします。
何が必要でどれをインストールしたらいいかは、OpenCVのドキュメントのチュートリアルUbuntuのヘルプに書いてあります。
2つのURLで書いてあることが違うのですがどっちを信用すればいいかは分かりません。
他にも人によって若干違う(?)ような感じで、みなさんどこを参考にしているのでしょうか。違いは何なんですかね。
今回はOpenCVのドキュメントに従ってみます。

【参考URL】
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

1行目2行目は必須。3行目はオプションみたいです。

ちなみにUbuntuのヘルプに従う場合は以下。-qqはエラー以外を表示しないというオプションです。

sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg cmake qt5-default checkinstall

参考にさせていただた記事に従うと以下になります。

sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip



ソースをダウンロードする。

【参考URL】

インストールしたgitを使ってOpenCVのソースをダウンロードします。
ダウンロードする場所はどこでもいいのですが、今回はホーム直下にSourcesというディレクトリを作ってその中にダウンロードします。
下記のコマンドでホームに移動してSourcesというディレクトリを作成します

cd ~
mkdir Sources

できたディレクトリに移動してOpenCVのソースとcontribのソースをダウンロードする。

cd Sources
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

ソースのダウンロードはgitを使わなくても公式サイトからダウンロードしたり、githubのリリースのところからダウンロードしてもたぶん大丈夫です。
違いは、gitは最新バージョンで、公式サイトやgithubのリリースのところは安定バージョンがダウンロードできるってだけだと思います。
ダウンロード速度は公式サイトやgithubのリリースところからダウンロードしたほうが速いっぽいです。


Cmakeを使って自分の環境に合ったソースを生成する。

【参考URL】

まずダウンロードしたソースのディレクトリに移動してビルド用のディレクトリを作り、さらにそのディレクトリに移動します。

cd opencv
mkdir build
cd build

次に、Cmakeを使って自分の環境に合ったソースを生成します。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/Sources/opencv_contrib/modules ..

一つ目のオプションはリリースモードを選択しています。
二つ目のオプションはインストールする場所を選択しています。
三つ目のオプションはOpenCVのcontribの場所を指定しています。gitでダウンロードしたopencv_contribの中のmodulesディレクトリを指定しましょう。
他にも必要ならば『-D WITH_CUDA=ON』や『-D WITH_TBB=ON』『-D WITH_FFMPEG=ON』などを追加してください。
何が設定できるかはCMakeLists.txtを見ればいいっぽいです。


ソースをビルドする。

make -j $(nproc)



ビルドしてできたバイナリとヘッダを適切な場所に配置する。

このコマンドでビルドされたバイナリとヘッダが共有ライブラリディレクトリにコピーされます。(たぶん)

sudo make install



配置したバイナリとヘッダを反映させる。

共有ライブラリにコピーされただけでは反映されないので、
このコマンドで共有ライブラリにコピーされたバイナリとヘッダを反映します。(たぶん)

sudo ldconfig



最後に

これで、OpenCVが使えるようになったはずです。
PythonC++で試してみましょう。

また、この記事に書いてあること以外に、
CMakeを使う前にこのコマンドを入力しないとエラーがでるかもしれないとか、

export PYTHON_INCLUDE_DIRS="/usr/include/python2.7"
export PYTHON_LIBRARYS="/usr/lib/x86_64-linux-gnu/libpython2.7.so"

最後に以下のコマンドが必要かもしれないと、参考にさせていただいた記事にありました。
エラーが出てしまった人は試してみてください。

sudo cp ~/opencv-3.1.0/build/lib/cv2.so /usr/local/lib/python2.7/site-packages/
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

ちなみに、OpenCVを使うために必要なものは make install コマンドで共有ライブラリにコピーされたはずなので、
gitでダウンロードしたソース(つまりこの記事の中でいうと、Sourcesディレクトリの中身)は削除しても大丈夫なはずです。(たぶん)
また、アンインストールの方法は共有ライブラリにコピーされたバイナリとヘッダを削除するだけ?なのかな?


UbuntuにOpenCVをパッケージからapt-getを使ってインストールする。

この方法でインストールされるOpenCVは最新バージョンではないです。


環境



流れ



Ubuntuのパッケージを最新にする。

sudo apt-get update
sudo apt-get upgrade



apt-getでOpenCVをインストールする。

sudo apt-get install libopencv-dev



C++関連URLの個人的なまとめ。

増えてきたら個別に分ける。


C++の日本語リファレンス



WindowsのIPやプロキシ設定を変更するバッチファイルの作り方。

環境



流れ

  • 変更するコマンドをtxtで保存。
  • 拡張子をbatに変更。
  • 管理者権限で実行。