1

我正在尝试将可执行文件链接到 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 --warn-unresolved-symbols,但编译器不知道该标志的含义。

4

1 回答 1

1

对于其他有此问题的人,问题出在我的 API 级别。ndk-build 默认使用 android-3 构建。我在我的项目路径中添加了一个 default.properties 文件,然后将“target=android-9”放入该文件中。添加后,我可以构建可执行文件。

于 2012-10-16T13:57:50.947 回答