2016年12月7日水曜日

An installation of GCC ver.6.2 on Raspberry Pi3

緯度経度の平面直角座標系に変換するプログラムで、最適化をすると計算結果が異常値になるので、gcc 6.2でどうなるかと確かめるために、ソースからコンパイルしてインストールした。

で、手順は、、、

1.スワップファイルを1024に増やす

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=1024

そして、リブートする。

で、ビルドが終わったら、元の100に直す。


2.ソースのダウンロードとビルドの準備

cd
mkdir code
cd code
wget http://nl.mirror.babylon.network/gcc/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2
tar xvf gcc-6.2.0.tar.bz2
cd gcc-6.2.0
contrib/download_prerequisites
mkdir obj
cd obj


3.ビルドとインストール 6時間位かかる

../configure -v --enable-languages=c,c++ --prefix=/usr/local/gcc-6.2 --program-suffix=-6 --with-cpu=cortex-a53 --with-fpu=neon-fp-armv8 --with-float=hard --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf

make -j5

sudo make install


4.環境設定

export PATH=/usr/local/gcc-6.2/bin:$PATH

5.スワップサイズを元に戻す

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE=100

で、終わり。。。

で、最低化オプションしていしての、実行結果は、、、

cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpq/init.lo
cp ./gcc-6.2.0/obj/gmp/mpz/init.lo ./gcc-6.2.0/obj/gmp/mpf/init.lo

cp  /home/pi/code/gcc-6.2.0/obj/gmp/mpz/abs.lo /home/pi/code/gcc-6.2.0/obj/gmp/mpq/abs.lo
 cp ./stage1-gmp/mpq/aors.lo ./gmp/mpq/aors.lo

cp ./stage1-gmp/mpq/canonicalize.lo ./gmp/mpq/canonicalize.lo

cp ./gmp/mpz/clear.lo ./gmp/mpq/clear.lo

cp ./gmp/mpz/cmp.lo ./gmp/mpq/cmp.lo


で、、、、エラー続出で、だめでした。。。(´;ω;`)



2016年12月6日火曜日

緯度経度を平面直角座標系に変換するプログラムと奇々怪々gcc

緯度経度(GPSデータ)から平面直角座標に変換するプログラム

とりあえずRESTで使っていたけど、

自由に使いたいので、C言語で自作。

もとは、この計算式

ちなみに、GPSのフォーマットは、$GPGGA

で、、、

奇々怪々、Raspberry Pi Jessieのgcc (Raspbian 4.9.2-10) 4.9.2

最適化オプションを付けると、計算値がおかしくなる。-O2, -O3は確認

gcc ソース -0 実行名称 -lm