なんとかなるさね

マイコンをネタにブログを始めてみました


Arduino IDE | Intel Galileo Arduino IDEのGCCでビルドしたプログラムをUbuntuで実行してみた 

3つ前のエントリで、Windows上のIntel Galileo Arduino IDEでビルドしたプログラムを、VMware Player
上のUbuntuにコピーし、実行しようして失敗した
のですが、ちょっと意地になって、今回、Intel Galileo
Arduino IDEで使用されているi586-poky-linux-uclibc GCCをコマンドプロンプトから操作して、もっと
簡単なサンプルプログラムで試してみました。残念ながら、共有ライブラリで不足しているものがあった
ので、対症療法的に無理矢理補うようなことをしてしまいましたが、一応、実行させることは出来ました。




試したサンプルプログラムは、以下の通りです。(もともとは、Interface誌2013年11月号のCEV-RZ/A1Lの
「ステップ2…開発環境の構築」という記事のサンプルプログラムです。)

ファイル: sample.c

/*
 * sample.c
 *
 */
#include <stdio.h>

int main(int argc, char* argv[])
{
    printf("Hello app!!\n");
    return 0;
}


今回、Windowsのコマンドプロンプトで、以下のようにビルドしました。

cd /d E:/tools/micom/Intel/tmp
dir /b
E:/tools/micom/Intel/arduino-1.5.3/hardware/tools/x86/i686-pokysdk-mingw32/usr/bin/i586-poky-linux-uclibc/i586-poky-linux-uclibc-gcc --sysroot=E:/tools/micom/Intel/arduino-1.5.3/hardware/tools/x86/i586-poky-linux-uclibc -O0 -ggdb -o sample sample.c
dir /b

そして、ビルドしたプログラムを、VMware Player上のUbuntuで、以下のように共用ライブラリを補って
実行させました。

ls ~/Galileo/arduino-1.5.3/hardware/tools/x86/i586-poky-linux-uclibc/lib
sudo ln -s ~/Galileo/arduino-1.5.3/hardware/tools/x86/i586-poky-linux-uclibc/lib/ld-uClibc.so.0 /lib/ld-uClibc.so.0
sudo ln -s ~/Galileo/arduino-1.5.3/hardware/tools/x86/i586-poky-linux-uclibc/lib/libc.so.0 /lib/libc.so.0
sudo ln -s ~/Galileo/arduino-1.5.3/hardware/tools/x86/i586-poky-linux-uclibc/lib/libgcc_s.so.1 /lib/libgcc_s.so.1
ls
./sample

なお、VMware Playerの共有フォルダ機能を使い、以下のようにWindowsとVMware Player上のUbuntuの
両方からIntel Galileo Arduino IDEをインストールしたフォルダにアクセス出来るようにしました。




また、GDBを試したところ、ワーニングが表示されてしまったものの、一応、デバッグ出来そうでした。



追記 : メモ

今回、VMware Playerの共有フォルダ機能を使ったのですが、Windows版のIntel Galileo Arduino IDEの
GCCではなく、Linux版のIntel Galileo Arduino IDEのGCCであれば、共有フォルダ機能を使わなくても、
Ubuntu上でサンプルプログラムをi586-poky-linux-uclibc GCCでビルドして、そのまま実行出来ると思い
ます。(共有ライブラリを補う必要がある点は同じだと思いますが。)

関連記事

2013/12/26   blog-entry-394   category: Arduino Lib & CrossGCC

go page top