CANNOT LINK EXECUTABLE错误
今天编译一个远程server,始终出现这个错误。最后发现是应用程序运行时连接的动态库不对(编译时连接的库不是他需要的)不仅仅包含应用程序的动态库,还要包含此运行库所需的运行库(应用程序->运行库->运行库)。
注:这是第三次碰到这个错误了,而且同之前2次一样,找了老多原因,耽误了大量时间,实在是不应该。特在此做个记录。
Android.mk文件编写注意事项:
1 LOCAL_PATH := $(call my-dir) 2 3 include $(CLEAR_VARS) 4 5 LOCAL_MODULE_TAGS := optional 6 7 LOCAL_SRC_FILES := AddService.cpp 8 9 LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) 10 11 LOCAL_SHARED_LIBRARIES := \ 12 libcutils \ 13 libutils \ 14 libbinder \ 15 libandroid_runtime 16 17 LOCAL_PRELINK_MODULE := false 18 19 LOCAL_MODULE := libAdd 20 21 include $(BUILD_SHARED_LIBRARY)
1、 如果在红色部分改成这样:LOCAL_MODULE:=libAdd ##注释
编译出来的库名称为libAdd,就不带.so结尾。
2、如果2个Android.mk整合成一个,那么需要打掉一个
LOCAL_PATH := $(call my-dir)
不然会到不到源码路径。