Jump to content
  • Advertisement
Sign in to follow this  

Prebuild of static library not executed.

This topic is 2036 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've implemented a simple static test library foo and perform a successfully build of this library. Now I try to include this library as static prebuild to my simple shared bar library, based on android documentation. But this fails. My shared library is build successfully but my prebuild is not executed (finally not copied).


Here ist my bar Android.mk file

LOCAL_PATH := D:/binrev/repository/bar
include $(CLEAR_VARS)

LOCAL_MODULE    := foo-prebuilt
LOCAL_SRC_FILES := external-deps/foo/lib/android/$(TARGET_ARCH_ABI)/libfoo.a

include $(CLEAR_VARS)           
LOCAL_MODULE    := bar
LOCAL_C_INCLUDES:= D:/binrev/repository/bar/include
LOCAL_C_INCLUDES+= D:/binrev/repository/bar/external-deps/foo/include
LOCAL_SRC_FILES := src/bar.cpp

LOCAL_LDLIBS += -landroid 


And here is my Application.mk file:


APP_PROJECT_PATH := D:/binrev/repository/bar

APP_CPPFLAGS := -std=gnu++0x  
APP_CPPFLAGS += -frtti
APP_CPPFLAGS += -fexceptions

APP_STL := gnustl_static
APP_GNUSTL_CPP_FEATURES := rtti exceptions
APP_OPTIM := debug

APP_ABI := armeabi-v7a


I use MinGW64 in hanshake with NDK 8re. I could exclude MinGW64 as possible source of defects, while this failure also occurs, if I perform the build using Windows command line. While the upload is blocked by our proxy you could download the test project here:




I checked my sources and scripts multiple times, but can't find any failure.

I completly get lost and running out of ideas ...
Thanks for any help.

Share this post

Link to post
Share on other sites

This is about a year old and I haven't used it in a while (so the NDK may have changed to the point where this could be a little out of date) but this is how I built a shared library that also includes prebuilt static one.


LOCAL_STATIC_LIBRARIES := nameofprebuiltstaticlibrary
$(call import-module,nameofprebuiltstaticlibrary)

But for some source includes (and some commented out lines which I'll cover below) these are the only locations in my Android.mk that specifically mention the library I'm trying to include.


You look to include your pre-built static as a shared:


...and I'm not sure what the result of that would be but it looks a little dodgy given it's a static.


Before the above, this is what I used to do.

include $(CLEAR_VARS)
LOCAL_MODULE := library_pre
LOCAL_SRC_FILES := libprebuilt.a

$(call import-module,prebuilt) 


I list that because I note you have something similar too.  In my case, this is how it was and it is now commented out and I rely on the first code box above.  I mention it because for me to not be using this/this being my old method - you may be mixing two methods.  The google make files offer more than one way to cook the egg and as I recall mixing them is easy to do.


I would post my files but once upon a time another engineer hacked them up to customize.  Not sure exactly what they had in mind here because it was working well already and they eventually stopped trying as they realized the google system worked well enough.  In the process they really messed up the clarity on offer though (it was once much clearer from just looking at the file), hence why it's best for me to post the intact snippets and the commented parts.

Edited by freakchild

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!