3

小さなcファイルとそのヘッダーファイルを書きました。dev_access.c および dev_access.h

Android のバイオニック ライブラリにリンクし、静的/動的にリンクされたアーカイブ ファイルを作成したいと考えています。

私のファイルは /home/preetam/mydev/ にあります Android ソースは /home/preetam/android_source にあります

以下は私の現在のメイクファイルです

CROSS           := /home/preetam/bin/CodeSourcery/arm2010/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi
CC              := $(CROSS)-gcc
INC_DIR         := /home/preetam/android_source/bionic/libc
CFLAGS          := -Wall -c -I$(INC_DIR)/include

android_hal: dev_access.o
        ${CC} ${CFLAGS} dev_access.c -o dev_access.a

clean:
        rm -f *.o dev_access.a

何が問題なのかはわかりませんが、ヘッダー ファイルがリンクされておらず、いくつかの欠落および再定義エラーが発生しています。コンソール出力は次のとおりです。

/home/preetam/bin/CodeSourcery/arm2010/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -c -Wall -I/home/preetam/android_source/bionic/libc/include -static   -c -o dev_access.o dev_access.c
In file included from /home/preetam/android_source/bionic/libc/include/stdio.h:42,
                 from dev_access.c:1:
/home/preetam/android_source/bionic/libc/include/sys/_types.h:40: fatal error: machine/_types.h: No such file or directory
compilation terminated.
make: *** [dev_access.o] Error 1

まず、私の Makefile は正しいですか? プログラムを bionic libc とリンクする適切な方法は何ですか? 最終的なオブジェクトをアーカイブにする方法は?

4

1 に答える 1

1

bionic にはこれらのインクルード パスを使用する必要があります。

libc/arch-$ARCH/include 
libc/include 
libc/kernel/common 
libc/kernel/arch-$ARCH

arにはいくつかのスイッチがあるかもしれません...

編集:スイッチはcrです

ar -crv <libname> <source_object>
于 2014-05-14T07:35:41.323 に答える