2012-10-16 20 views
1

我試圖可執行對libcutils.so鏈接,但我得到了以下錯誤:的Android NDK聯對libcutils.so

Executable  : gps_test 
/home/jbrew/android_gps/jni/lib_dir//libcutils.so: undefined reference to `ioprio_set' 
/home/jbrew/android_gps/jni/lib_dir//libcutils.so: undefined reference to `ioprio_get' 
collect2: ld returned 1 exit status 
make: *** [obj/local/armeabi/gps_test] Error 1 

這裏是我的Android.mk文件看起來像:

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_SRC_FILES:= \ 
    gps_test.c 

LOCAL_LDLIBS:= -L/home/jbrew/android_gps/jni/lib_dir/ -llog -lhardware -lcutils 

LOCAL_C_INCLUDES:= \ 
    /home/jbrew/android_gps/jni/includes 

LOCAL_MODULE:= gps_test 

#include $(BUILD_SHARED_LIBRARY) 
include $(BUILD_EXECUTABLE) 

有沒有辦法讓編譯器忽略這些?我試圖添加CFLAG - 無法解析的符號,但編譯器不知道該標誌的含義。

回答

1

對於有此問題的其他人,問題在於我的API級別。 ndk-build默認使用android-3來構建。我在項目路徑中添加了一個default.properties文件,然後在該文件中放置了「target = android-9」。在此之後,我可以構建可執行文件。

+0

選擇特定API級別的更簡單方法是在Application.mk中設置APP_PLATFORM:android-9。 –