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)

不然会到不到源码路径。

转载于:https://www.cnblogs.com/jevan/archive/2012/11/14/2770544.html

你可能感兴趣的:(CANNOT LINK EXECUTABLE错误)