cmakeとgccをインストールしておく
$ brew install cmake
gccはxcodeのコマンドラインツールをインストールする。
Eclipseは最新のものインストールすれば良い。
CDTに以下のヘッダファイルとパスを設定する。
ヘッダファイルには以下を追加した。
/usr/include/c++/[バージョン番号]
MacOSのC++リンカーのコマンドに以下を追加する。
-stdlib=libstdc++
以上!
$ brew install cmake
gccはxcodeのコマンドラインツールをインストールする。
/usr/include/c++/[バージョン番号]
-stdlib=libstdc++
layout_height viewの高さ
layout_width viewの横幅
・絶対値を指定する
dp(dip):density-independent pixels(密度非依存のピクセル)
160dot/inch(dpi)の画面を基準とし、1dpiは160dpiの画面で1ピクセルと同義である。
px = dp * (dpi / 160)
つまり、画面の解像度(dpi)によって、(dpi/160)の比率で自動的に px を決定するため、
複数の解像度端末に対応出来る。
sp:scale-independent pixels(スケール非依存のピクセル)
指定したサイズは解像度とユーザが設定したフォントのサイズに合わせて自動的にスケールされる。
dpと似ているが、フォントサイズに依存する点で異なる。
px:ピクセル単位
たとえば、480px X 800pxの画面であれば、
1pxは画面の1/480ということになる。
Viewの幅や高さ、マージン、パディングはdpで指定し、文字サイズに関してだけspで指定することが多いようである。
また、画面レイアウトファイルで「android:textsize」属性を指定しない場合(デフォルト)では、フォントサイズの単位にspが使用される。
はじめは、480px×800pxを想定して作成し、その後他の解像度の端末で検証すると良い。
googleの公式:http://developer.android.com/intl/ja/design/style/metrics-grids.html・相対的に指定する
match_parent(fill_parent:API Level8から非推奨):親のViewと同じサイズ
wrap_content:コンテンツを表示するのに十分なサイズ
padding:Viewの内側の余白
layout_margin:Viewの外側の余白
gravity:内部の要素の位置を決める
layout_gravity:自分の位置を決める
LinearLayout:Viewを直線的(線形)に並べることができる
・どの方向に並べるか
orientation:horizontal(横、デフォルト) or vertical(縦)
・子要素の重み
layout_weight:View配置の残りのスペースを埋める。指定しない場合、0が割り当てられる
レイアウト中のViewは割り当てられた重み分だけ残りのスペースを埋めるように表示される。
以下のようなパラメータによってView同士の位置関係によって画面を構成できる。
layout_above:指定したidのViewの上
layout_alignBaseline:指定したidのViewのベースラインにあわせる
layout_alignBottom:指定したidのViewの下端にあわせる
layout_alignLeft:指定したidのViewの左端にあわせる
layout_alignParentBottom:親となるViewの下端にあわせる
layout_alignParentLeft:親となるViewの左端にあわせる
layout_alignParentRight:親となるViewの右端にあわせる
layout_alignParentTop:親となるViewの上端にあわせる
layout_alignRight:指定したidのViewの右端にあわせる
layout_alignTop:指定したidのViewの上端にあわせる
layout_below:指定したidのViewの下
layout_centerHorizontal:親となるViewの横方向の中央
layout_centerInParent:親となるViewの中央
layout_centerVertical:親となるViewの縦方向の中央
layout_toLeftOf:指定したidのViewの左側
layout_toRightOf:指定したidのViewの右側
FrammeLayoutのViewが、レイアウトファイルに記述された順番で配置される。
子にもつルートとなるViewは1つでなければならない。つまり、ScrollViewに直接複数のTextViewを指定せず、TextViewをもつLinearLayoutを、ScrollViewに配置するなどである。
> brew install pyenv
> pyenv install anaconda-2.0.1
> pyenv rehash
> sudo pyenv local anaconda-2.0.1
> sudo pyenv global anaconda-2.0.1
> brew install opencv
> brew edit opencv
-DPYTHON_LIBRARY=#{py_prefix}/lib/libpython2.7.dylib
-DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7
boost snappy leveldb protobuf gflags glog szip lmdb homebrew/science/opencv
for x in snappy leveldb protobuf gflags glog szip boost boost-python lmdb homebrew/science/opencv; do brew edit $x; done
def install
# ADD THE FOLLOWING:
ENV.append "CXXFLAGS", "-stdlib=libstdc++"
ENV.append "CFLAGS", "-stdlib=libstdc++"
ENV.append "LDFLAGS", "-stdlib=libstdc++ -lstdc++"
# The following is necessary because libtool likes to strip LDFLAGS:
ENV["CXX"] = "/usr/bin/clang++ -stdlib=libstdc++"
boostのバージョンが1.55で無いとうまく動かないよ、という記述に気づいていなかった。
対処としては、以下のURLを参考に、caffe用の/usr/local/のbranch上でboostのformulaを書き換えて、再度brewでインストールした。
https://github.com/BVLC/caffe/issues/1193#issuecomment-57491906
上記のファイルのinstall部分を、再度libstdc++を使ってコンパイルするように書きなおしてから、アンインストール、インストールを実行。
> brew uninstall boost
> brew uninstall boost-python
brew install --build-from-source --fresh -vd boost boost-python
for x in snappy leveldb gflags glog szip lmdv homebrew/science/opencv; do brew uninstall $x; brew install --build-from-source --fresh -vd $x; done
brew uninstall protobuf; brew install --build-from-source --with-python --fresh -vd protobuf
brew install --build-from-source --fresh -vd boost boost-python
cd /usr/local
git checkout -b caffe
git add .
git commit -m "Update Caffe dependencies to use libstdc++"
git checkout master
brew update
git rebase master caffe
# Resolve any merge conflicts here
git checkout caffe
> git clone https://github.com/BVLC/caffe.git
> cd caffe
> cp Makefile.config.example Makefile.config
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_50,code=compute_50
# Anaconda Python distribution is quite popular. Include path:
PYTHON_INCLUDE := $(HOME)/.pyenv/versions/anaconda-2.0.1/include \
$(HOME)/.pyenv/versions/anaconda-2.0.1/include/python2.7 \
$(HOME)/.pyenv/versions/anaconda-2.0.1/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := $(HOME)/.pyenv/versions/anaconda-2.0.1/lib
> make all
> make test
> make runtest
/usr/local/cuda/lib:$HOME/anaconda/lib:/usr/local/lib:/usr/lib
[==========] 838 tests from 169 test cases ran. (142854 ms total)
[ PASSED ] 838 tests.