[Armadillo:07275] Re: Armadillo-440 での Anjuta + Glade + Gtk+ での開発環境

Hiroki Ishiura email@hidden
2011年 5月 26日 (木) 14:42:42 JST


石浦です。

ATDE3とArmadillo-440にて、Anjutaは使っていませんがGladeで作った画面リソー
スを実機で使える様に環境構築したことがありますので、その時のメモをお送り
します。
# すでに解決済みでしたらすみません。

1. 開発用にGladeをインストール

    (ATDE3)$ sudo apt-get install glade

2. 実機用にライブラリを追加インストール

    (ATDE3)$ sudo apt-cross --arch armel --suite lenny --install libxml2
    (ATDE3)$ sudo apt-cross --arch armel --suite lenny --install libxml2-dev
    (ATDE3)$ sudo apt-cross --arch armel --suite lenny --install libglade2-0
    (ATDE3)$ sudo apt-cross --arch armel --suite lenny --install libglade2-dev

3. 実機用のライブラリでファイルが不足していたので(?)手動でシンボリックリ
   ンクを張る

    (ATDE3)$ cd /usr/arm-linux-gnueabi/lib
    (ATDE3)$ sudo ln -s libxml2.so.2.6.32 libxml2.so
    (ATDE3)$ sudo ln -s libglade-2.0.so.0.0.7 libglade-2.0.so

4. 開発環境の/usr/arm-linux-gnueabi/libから必要なファイルを実機の/libに
   ftpとかでコピー(atmark-distのmakeでromfs.img.gzに出力されるように方が
   いいと思います)
    (armadillo)$ cd /lib
    (armadillo)$ cp (クロス開発環境のlib) libxml2.so.2.6.32
    (armadillo)$ cp (クロス開発環境のlib) libglade-2.0.so.0.0.7
    (armadillo)$ chown root.root libxml2.so.2.6.32
    (armadillo)$ chown root.root libglade-2.0.so.0.0.7
    (armadillo)$ chmod 644 libxml2.so.2.6.32
    (armadillo)$ chmod 644 libglade-2.0.so.0.0.7
    (armadillo)$ ln -s libxml2.so.2.6.32 libxml2.so.2
    (armadillo)$ ln -s libglade-2.0.so.0.0.7 libglade-2.0.so.0

5. サンプルのMakefileを作る

    #CC     = gcc
    #CC     = arm-linux-gnueabi-gcc
    CFLAGS  = $(shell pkg-config --cflags gtk+-2.0 libglade-2.0 gmodule-2.0)
    LDFLAGS = 
    LDLIBS  = $(shell pkg-config --libs gtk+-2.0 libglade-2.0 gmodule-2.0)

    TARGET  = hello
    OBJS    = hello.o

    .PHONY: all
    all: $(TARGET)

    $(TARGET): $(OBJS)
        $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

    %.o: %.c
        $(CC) $(CFLAGS) -c -o $@ $<

    .PHONY: clean
    clean:
        $(RM) *~ $(OBJS) $(TARGET)

6. サンプルのhello.cを作る

    #include <stdio.h>
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include <glade/glade.h>

    int main(int argc, char* argv[])
    {
        GladeXML* xml;
        GtkWidget* window;
        gtk_init(&argc, &argv);
        xml = glade_xml_new("hello.glade", NULL, NULL);
        glade_xml_signal_autoconnect(xml);
        window = glade_xml_get_widget(xml, "window1");
        gtk_widget_show(window);
        gtk_main();
        return EXIT_SUCCESS;
    }

7. サンプルのhello.gladeを作る

8. サンプルをビルドする
    MakefileのCCをgccにしてビルドするとATDE3で実行できる
    逆に、arm-linux-gnueabi-gccにしてビルドするとarmadillo用になる

9. ビルドしたhelloとhello.gladeをftpとかで実機にコピー

10. 実機でサンプルを実行
    (armadillo)$ chmod a+x hello
    (armadillo)$ ./hello --display :0

ただし、一部記憶に頼っている部分があるので一発でその通りに動かないかも知
れません。




armadillo メーリングリストの案内