2017-05-23 1 views
0

Android Studio 프로젝트에서 C로 작성된 CCV library을 사용하고 싶습니다. 나는 그것을 컴파일 관리,하지만 난 지금 때문에 내 래퍼에 이러한 오류 중 일부 링크 오류에 직면하고 생각 :기본 라이브러리를 Android 프로젝트에 연결

C:\Users\henry\Documents\android-project\app\src\main\jni\ccv\ccv.cpp 
    Error:(25) undefined reference to `ccv_read_impl(void const*, ccv_dense_matrix_t**, int, int, int, int)' 
Error:error: linker command failed with exit code 1 (use -v to see invocation) 

이 내 CMakeLists 파일의 모습입니다 같은 :

cmake_minimum_required(VERSION 3.4.1) 

#This is my wrapper 
add_library(ccv SHARED 
      src/main/jni/ccv/ccv.cpp 
      ) 

#This is the actual library 
add_library(ccvlib SHARED 
      src/main/jni/ccv/lib/3rdparty/dsfmt/dSFMT.c 
      src/main/jni/ccv/lib/3rdparty/dsfmt/dSFMT.h 
      src/main/jni/ccv/lib/3rdparty/dsfmt/dSFMT-common.h 
      src/main/jni/ccv/lib/3rdparty/dsfmt/dSFMT-params.h 
      src/main/jni/ccv/lib/3rdparty/dsfmt/dSFMT-params19937.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/_kiss_fft_guts.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/_kissf_fft_guts.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fft.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fft.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftnd.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftnd.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftndr.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftndr.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftr.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kiss_fftr.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fft.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fft.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftnd.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftnd.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftndr.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftndr.h 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftr.c 
      src/main/jni/ccv/lib/3rdparty/kissfft/kissf_fftr.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT.c 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT-alti.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT-common.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT-params.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT-params19937.h 
      src/main/jni/ccv/lib/3rdparty/sfmt/SFMT-sse2.h 
      src/main/jni/ccv/lib/3rdparty/sha1/sha1.c 
      src/main/jni/ccv/lib/3rdparty/sha1/sha1.h 
#   src/main/jni/ccv/lib/3rdparty/sqlite3/sqlite3.c 
#   src/main/jni/ccv/lib/3rdparty/sqlite3/sqlite3.h 
#   src/main/jni/ccv/lib/inl/ccv_convnet_inl.h 
      src/main/jni/ccv/lib/io/_ccv_io_binary.c 
#   src/main/jni/ccv/lib/io/_ccv_io_bmp.c 
#   src/main/jni/ccv/lib/io/_ccv_io_libjpeg.c 
#   src/main/jni/ccv/lib/io/_ccv_io_libpng.c 
      src/main/jni/ccv/lib/io/_ccv_io_raw.c 
      src/main/jni/ccv/lib/ccv.h 
      src/main/jni/ccv/lib/ccv_algebra.c 
      src/main/jni/ccv/lib/ccv_basic.c 
      src/main/jni/ccv/lib/ccv_bbf.c 
      src/main/jni/ccv/lib/ccv_cache.c 
      src/main/jni/ccv/lib/ccv_classic.c 
#   src/main/jni/ccv/lib/ccv_convnet.c 
      src/main/jni/ccv/lib/ccv_daisy.c 
      src/main/jni/ccv/lib/ccv_doxygen.h 
#   src/main/jni/ccv/lib/ccv_dpm.c 
      src/main/jni/ccv/lib/ccv_ferns.c 
      src/main/jni/ccv/lib/ccv_icf.c 
      src/main/jni/ccv/lib/ccv_image_processing.c 
      src/main/jni/ccv/lib/ccv_internal.h 
      src/main/jni/ccv/lib/ccv_io.c 
      src/main/jni/ccv/lib/ccv_memory.c 
      src/main/jni/ccv/lib/ccv_mser.c 
#   src/main/jni/ccv/lib/ccv_numeric.c 
      src/main/jni/ccv/lib/ccv_output.c 
      src/main/jni/ccv/lib/ccv_resample.c 
#   src/main/jni/ccv/lib/ccv_scd.c 
      src/main/jni/ccv/lib/ccv_sift.c 
      src/main/jni/ccv/lib/ccv_sparse_coding.c 
      src/main/jni/ccv/lib/ccv_swt.c 
      src/main/jni/ccv/lib/ccv_tld.c 
      src/main/jni/ccv/lib/ccv_transform.c 
      src/main/jni/ccv/lib/ccv_util.c 
      ) 

target_link_libraries(ccv 
         ccvlib 
         log 
         android 
        ) 

답변

0

좋아, 그것은 실제로 링커 오류가 아니 었습니다. CCV는 C 라이브러리이므로 래퍼에 C 코드로 넣어야합니다.

extern "C" { 
#include "lib/ccv.h" 
}; 
관련 문제