Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Don't forget to read Tuesday's email newsletter for your chance to win a free copy of Construct 2!


Prebuild of static library not executed.


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
1 reply to this topic

#1 chris_01   Members   -  Reputation: 129

Like
0Likes
Like

Posted 22 May 2013 - 04:11 AM

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 $(PREBUILT_STATIC_LIBRARY)

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 := -llog
LOCAL_LDLIBS += -landroid 
 
LOCAL_SHARED_LIBRARIES := foo-prebuilt
include $(BUILD_SHARED_LIBRARY)

 

And here is my Application.mk file:

 

APP_PROJECT_PATH := D:/binrev/repository/bar
APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/Android.mk 

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

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

APP_ABI := armeabi-v7a
APP_PLATFORM:=android-10          
APP_MODULES := bar

 

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:

 

http://sourceforge.net/projects/binrevengine/files/publications//bar.7z

 

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.



Sponsor:

#2 freakchild   Members   -  Reputation: 557

Like
0Likes
Like

Posted 22 May 2013 - 11:29 AM

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
...
include $(BUILD_SHARED_LIBRARY)
...
$(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:

LOCAL_SHARED_LIBRARIES := foo-prebuilt
 

...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_PATH := $(TARGET_OUT)
LOCAL_PATH := $(EORBRANCH_FS)/obj/prebuilt/$(TARGET_ARCH_ABI)
LOCAL_MODULE_FILENAME := libprebuit
LOCAL_SRC_FILES := libprebuilt.a
include $(PREBUILT_STATIC_LIBRARY)

$(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, 22 May 2013 - 11:36 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS