
我的Android.mk是:
LOCAL_PATH:= $(call my-dir)# Foo Secondary lib:# Clear varsinclude $(CLEAR_VARS)# Target BuildLOCAL_ARM_MODE := arm # library name LOCAL_MODulE := FooSecondary # Set All SRC_fileS Together SRC_fileS := $(wildcard $(LOCAL_PATH)/FooSecondary/src/*.c)SRC_fileS := $(SRC_fileS:$(LOCAL_PATH)/%=%) LOCAL_SRC_fileS = $(SRC_fileS)# Enable Log supportLOCAL_LDliBS = -llog # C Flags - Max optimization LOCAL_CFLAGS := -O3 -mno-thumb# C++ Flags - Max optimization LOCAL_CPPFLAGS := -O3 -mno-thumb# Compile as Shared library include $(BUILD_SHARED_liBRARY) # Foo Secondary lib:# Clear varsinclude $(CLEAR_VARS)# Include OpenCVinclude 3rdparty/OpenCV-2.4.3-rc-androID-sdk/sdk/native/jnI/OpenCV.mk# Target BuildLOCAL_ARM_MODE := arm # library name LOCAL_MODulE := FooMain # Set All SRC_fileS Together SRC_fileS := $(wildcard $(LOCAL_PATH)/FooMain/src/*.cpp)SRC_fileS := $(SRC_fileS:$(LOCAL_PATH)/%=%) LOCAL_SRC_fileS = $(SRC_fileS)LOCAL_SHARED_liBRARIES := libFooSecondaryLOCAL_LDliBS := -L$(LOCAL_PATH)/../libs/armeabi LOCAL_LDliBS += -lz -lm -ldl -lGLESv2 -lEGL -llog -lFooSecondaryLOCAL_CFLAGS := -O2 -mno-thumb -Wno-write-stringsLOCAL_CPPFLAGS := -O2 -mno-thumb -Wno-write-strings# Compile as Shared library include $(BUILD_SHARED_liBRARY)
我的Application.mk是:
APP_CPPFLAGS := -frtti -fexceptionsAPP_STL := gnustl_staticAPP_ABI := armeabi-v7a
但是,当我使用ndk-build编译AndroID.mk时,我得到下一个错误:
Compile arm : libFooSecondary <= *.cSharedlibrary : libFooSecondary.soInstall : libFooSecondary.so => libs/armeabi-v7a/libFooSecondary.soSharedlibrary : libFooMain.so/home/user/androID-ndk-r8/toolchains/arm-linux-androIDeabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androIDeabi/4.4.3/../../../../arm-linux-androIDeabi/bin/ld: cannot find -lFooSecondarycollect2: ld returned 1 exit statusmake: *** [obj/local/armeabi-v7a/libFooMain.so] Error 1
如果正确编译和安装,为什么找不到libFooSecondary.so?
另外,如果LOCAL_MODulE名称改变,例如,第一个是LOCAL_MODulE:= zname,第二个是LOCAL_MODulE:= aname,先编译第二个,我不知道为什么.
解决方法 你的AndroID.mk看起来很怪异.它在某处分配了LOCAL_PATH吗?没有必要将LOCAL_CPPFLAGS分配给复制LOCAL_CFLAGS,因为ndk-build将两组标志放在C命令行上.要更好地了解NDK如何解释您的Application.mk和AndroID.mk,您可以运行
ndk-build V=1
这将回显所有已执行的命令,包括编译和链接,以及NDK构建所分配的所有参数.
总结以上是内存溢出为你收集整理的opencv – 如何在同一个Android.mk中编译两个不同的库,将其中一个链接到另一个全部内容,希望文章能够帮你解决opencv – 如何在同一个Android.mk中编译两个不同的库,将其中一个链接到另一个所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)