2

Android で 1 つのサンプル ネイティブ アプリケーションをビルドします。ndk -bild を使用してコンパイルすると、リンケージの問題が発生します。次のエラーが発生します。

    arm-linux-androideabi-gcc -c -O2 -w -ansi -D_POSIX_SOURCE -I. -I../bozorth/include -   I./include/ "-D __MSYS__" "-D__NBISLE__"  src/BiomServerComponent.c -o src/BiomServerComponent.o
    In file included from src/BiomServerComponent.c:1:0:
    f:\android-ndk-r8b\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\../lib/gcc/arm-linux-androideabi/4.6.x-google/include-fixed/stdio.h:50:23: fatal error: sys/cdefs.h: No such file or directory
    compilation terminated.
    Makefile:25: recipe for target `src/BiomServerComponent.o' failed

sys/cdefs.h または sys/_types.h が見つかりませんが、次のパスで stdio.h を見つけます

F:\android-ndk-r8b\platforms\android-9\arch-arm\usr\include

この標準ヘッダーファイルをリンクする方法を知っている人なら誰でも、

4

3 に答える 3

1

表面的には、NDK がサポートしていないヘッダー ファイルを #include しようとしていることが明らかになったようです。NDK は、コンパイラで一般的に期待されるものを 100% 網羅しているわけではないことに注意してください。

これらのファイルを直接インクルードする場合は、<sys/types.h>代わりにインクルードする必要があります。

于 2012-09-24T11:21:23.317 に答える
0

私は答えを見つけました。--sysrootフラグを正しく設定してください。それ以外の場合、ndk はディレクトリtoolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6.x-google\include-fixedディレクトリを見つけることができなかった後、デフォルトでディレクトリに移動します。プラットフォーム\android-9\arch-arm\usr\include . 私も同じ問題を抱えていました。

于 2014-05-19T05:18:03.727 に答える
-3

EDIT re:最新の質問リビジョン:

本当の問題は、toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6.x-google\include-fixed実際にはplatforms\android-9\arch-arm\usr\include. 不正な -I オプションはどこかにありますか? OPが問題を抱えている下のincludeフォルダは、不自由に見えます。toolchainsおそらく、GCC ディストリビューションのアーティファクトです。実際の NDK ヘッダー フォルダーは別の場所にあります。

于 2012-09-24T13:21:33.830 に答える