2012-02-09 2 views
0

Android.mkファイルに複数の.cファイルをリンクする、または "使用する"にはどうすればいいですか?それは、現在、私がしようとすると、それをNDK-ビルドするときしかし、それは常に私がにu64.hのようなファイルを含めるにはどうすればよいAndroid.mkに複数の.cファイルをリンクする

Compile thumb : ndk_demo <= debug.c 
In file included from jni/gnutls-3.0.12/lib/debug.c:25: 
jni/gnutls-3.0.12/lib/gnutls_int.h:52:43: error: u64.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:57:24: error: gl/memxor.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:84:27: error: gnutls/gnutls.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:85:29: error: gnutls/abstract.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:86:20: error: system.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:202:24: error: gnutls_mem.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:219:24: error: gnutls_mpi.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:230:24: error: gnutls_str.h: No such file or directory 
In file included from jni/gnutls-3.0.12/lib/debug.c:25: 
jni/gnutls-3.0.12/lib/gnutls_int.h:276: error: expected specifier-qualifier-list before 'gnutls_handshake_description_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:307: error: expected specifier-qualifier-list before 'gnutls_datum_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:350: error: expected specifier-qualifier-list before 'gnutls_credentials_type_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:361: error: expected specifier-qualifier-list before 'gnutls_pk_params_st' 
jni/gnutls-3.0.12/lib/gnutls_int.h:418:29: error: gnutls_hash_int.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:419:31: error: gnutls_cipher_int.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:420:29: error: gnutls_compress.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_int.h:459: error: expected specifier-qualifier-list before 'gnutls_kx_algorithm_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:506: error: expected specifier-qualifier-list before 'gnutls_datum_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:527: error: expected specifier-qualifier-list before 'gnutls_cipher_algorithm_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:543: error: 'GNUTLS_MAX_ALGORITHM_NUM' undeclared here (not in a function) 
jni/gnutls-3.0.12/lib/gnutls_int.h:584: error: expected specifier-qualifier-list before 'bigint_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:591: error: expected specifier-qualifier-list before 'gnutls_dh_params_t' 
jni/gnutls-3.0.12/lib/gnutls_int.h:657: error: expected specifier-qualifier-list before 'gnutls_buffer_st' 
jni/gnutls-3.0.12/lib/gnutls_int.h:882: error: expected ')' before 'session' 
jni/gnutls-3.0.12/lib/gnutls_int.h:897: warning: parameter names (without types) in function declaration 
jni/gnutls-3.0.12/lib/gnutls_int.h:898: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_gnutls_get_adv_version' 
jni/gnutls-3.0.12/lib/gnutls_int.h:903: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_gnutls_protocol_get_version' 
jni/gnutls-3.0.12/lib/gnutls_int.h:911: error: expected ')' before 'session' 
In file included from jni/gnutls-3.0.12/lib/debug.c:26: 
jni/gnutls-3.0.12/lib/gnutls_errors.h:26:24: error: gnutls_int.h: No such file or directory 
jni/gnutls-3.0.12/lib/gnutls_errors.h:27:27: error: gnutls_global.h: No such file or directory 
In file included from jni/gnutls-3.0.12/lib/debug.c:26: 
jni/gnutls-3.0.12/lib/gnutls_errors.h:51: error: expected ')' before 'const' 
jni/gnutls-3.0.12/lib/gnutls_errors.h:58: error: expected declaration specifiers or '...' before 'bigint_t' 
In file included from jni/gnutls-3.0.12/lib/debug.c:29: 
jni/gnutls-3.0.12/lib/debug.h:24: error: expected ')' before 'handshake' 
jni/gnutls-3.0.12/lib/debug.h:25: error: expected declaration specifiers or '...' before 'bigint_t' 
jni/gnutls-3.0.12/lib/debug.c:67: error: expected ')' before 'handshake' 
make: *** [obj/local/armeabi/objs/ndk_demo/gnutls-3.0.12/lib/debug.o] Error 1 

このエラーがスローされます。この

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := ndk_demo 
LOCAL_SRC_FILES := gnutls-3.0.12/lib/debug.c 
include $(BUILD_SHARED_LIBRARY) 

のように見えます

Android.mkを実行すると、そのようなファイルやディレクトリのエラーは発生しません。あるいは、私はこれについて間違った方法をとっていますか?

答えて

8

あなたは、いくつかのCファイルを指定したい場合は、構文はこのようなものです:

LOCAL_C_INCLUDES := \ 
    /my_path1_to_h_files/ \ 
    /my_path2_to_h_files/ \ 
    /my_pathN_to_h_files/ 

そして、もし:

LOCAL_SRC_FILES := \ 
    my_c_file1.c \ 
    my_c_file1.c \ 
    my_c_file2.c \ 
    my_last_c_file.c 

は、このディレクティブでメイクファイルにあなたのヘッダファイルへのパスを追加します。あなたのモジュールはいくつかの共有ライブラリを使用してリンクしています。

LOCAL_SHARED_LIBRARIES := \ 
    lib1 \ 
    lib2 \ 
    lib3