title: non-system libraries in linker flags
body: <p>I have a fully working app employing some C++ and OpenCV. It compiles and runs successfully. Right now I am just trying to tidy my code and make changes to remove all warnings at compile time. But there is one warning I don't understand. It appears to be a problem with my android.mk.</p>
  
  <p>When I compile, the console output is as follows:</p>
  
  <pre><code>06:58:21 **** Incremental Build of configuration Default for project Motion ****
  "C:\\android-ndk-r9c\\ndk-build.cmd" all 
  Android NDK: WARNING:jni/Android.mk:mixed_sample: non-system libraries in linker flags: -lopencv_java    
  Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES    
  Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the    
  Android NDK:     current module    
  [armeabi-v7a] Compile++ thumb: mixed_sample &lt;= cpp_part.cpp
  [armeabi-v7a] SharedLibrary  : libmixed_sample.so
  C:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: hidden symbol '__aeabi_atexit' in C:/android-ndk-r9c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/libgnustl_static.a(atexit_arm.o) is referenced by DSO c:/opencv-2.4.8-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_java.so
  [armeabi-v7a] Install        : libmixed_sample.so =&gt; libs/armeabi-v7a/libmixed_sample.so
  
  06:58:24 Build Finished (took 2s.515ms)
  </code></pre>
  
  <p>My android.mk is as follows:</p>
  
  <pre><code>LOCAL_PATH := $(call my-dir)
  
  # compile with profiling
  LOCAL_CFLAGS := -pg
  
  include $(CLEAR_VARS)
  
   OPENCV_CAMERA_MODULES:=off 
   OPENCV_INSTALL_MODULES:=on 
   OPENCV_LIB_TYPE:=SHARED
  
  include c:\opencv-2.4.8-android-sdk/sdk/native/jni/OpenCV.mk
  
  LOCAL_MODULE    := mixed_sample
  LOCAL_SRC_FILES := cpp_part.cpp
  LOCAL_LDLIBS +=  -llog -ldl -lz
  
  LOCAL_STATIC_LIBRARIES := android-ndk-profiler
  
  include $(BUILD_SHARED_LIBRARY)
  
  $(call import-module,android-ndk-profiler)
  </code></pre>
  
  <p>I can't even work out where the "-lopencv_java" linker flag comes from, it doesn't appear anywhere in android.mk.</p>
  
  <p>Any ideas?</p>
  
  <p><strong>EDIT:</strong> In response to Alex Cohn's question. If I add "$(info ==$(OPENCV_INSTALL_MODULES)==)" in the line preceding "include $(CLEAR_VARS)" then the console reports the following:</p>
  
  <pre><code>08:39:34 **** Incremental Build of configuration Default for project Motion ****
  "C:\\android-ndk-r9c\\ndk-build.cmd" all 
  ====
  Android NDK: WARNING:jni/Android.mk:mixed_sample: non-system libraries in linker flags: -lopencv_java    
  Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES    
  Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the    
  Android NDK:     current module    
  [armeabi-v7a] Compile++ thumb: mixed_sample &lt;= cpp_part.cpp
  [armeabi-v7a] SharedLibrary  : libmixed_sample.so
  C:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: warning: hidden symbol '__aeabi_atexit' in C:/android-ndk-r9c/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/libgnustl_static.a(atexit_arm.o) is referenced by DSO c:/opencv-2.4.8-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_java.so
  [armeabi-v7a] Install        : libmixed_sample.so =&gt; libs/armeabi-v7a/libmixed_sample.so
  
  08:39:36 Build Finished (took 2s.564ms)
  </code></pre>