2013-06-17 1 views
1

XMP 도구 키트를 안드로이드 장치로 이식하려고합니다. 성공적으로 xmpcore를 빌드하고 libXMPCore.so를 가질 수있었습니다. ndk-build를 사용하여 libXMPFile.so를 만들려고 할 때, 내가 이해하지 못하는 몇 가지 문제를 실행하고 있습니다.안드로이드 장치에서 기본 adobe XMP 실행

1) libXMPFile.so는 libXMPCore.so에 의존합니다. libXMPFiles 용 Android.mk에 libXMPCore.so를 포함 시켰습니다. 내 Android.mk는 다음과 같습니다

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

# Include all cpp file 
LOCAL_SRC_FILES := \ 
../source/WXMPFiles.cpp \ 
../source/XMPFiles.cpp \ 
../source/XMPFiles_Impl.cpp \ 
../../source/XMP_LibUtils.cpp \ 
../../source/UnicodeConversions.cpp \ 
../../source/XML_Node.cpp \ 
../../third-party/zuid/interfaces/MD5.cpp \ 
../source/FileHandlers/ASF_Handler.cpp \ 
../source/FileHandlers/AVCHD_Handler.cpp \ 
../source/FileHandlers/RIFF_Handler.cpp \ 
../source/FileHandlers/Basic_Handler.cpp \ 
../source/FileHandlers/FLV_Handler.cpp \ 
../source/FileHandlers/InDesign_Handler.cpp \ 
../source/FileHandlers/JPEG_Handler.cpp \ 
../source/FileHandlers/MP3_Handler.cpp \ 
../source/FileHandlers/MPEG2_Handler.cpp \ 
../source/FileHandlers/MPEG4_Handler.cpp \ 
../source/FileHandlers/P2_Handler.cpp \ 
../source/FileHandlers/PNG_Handler.cpp \ 
../source/FileHandlers/PostScript_Handler.cpp \ 
../source/FileHandlers/PSD_Handler.cpp \ 
../source/FileHandlers/Scanner_Handler.cpp \ 
../source/FileHandlers/SonyHDV_Handler.cpp \ 
../source/FileHandlers/SWF_Handler.cpp \ 
../source/FileHandlers/TIFF_Handler.cpp \ 
../source/FileHandlers/Trivial_Handler.cpp \ 
../source/FileHandlers/UCF_Handler.cpp \ 
../source/FileHandlers/XDCAM_Handler.cpp \ 
../source/FileHandlers/XDCAMEX_Handler.cpp \ 
../source/FormatSupport/ASF_Support.cpp \ 
../source/FormatSupport/IPTC_Support.cpp \ 
../source/FormatSupport/MOOV_Support.cpp \ 
../source/FormatSupport/ISOBaseMedia_Support.cpp \ 
../source/FormatSupport/PNG_Support.cpp \ 
../source/FormatSupport/PSIR_FileWriter.cpp \ 
../source/FormatSupport/PSIR_MemoryReader.cpp \ 
../source/FormatSupport/QuickTime_Support.cpp \ 
../source/FormatSupport/Reconcile_Impl.cpp \ 
../source/FormatSupport/ReconcileIPTC.cpp \ 
../source/FormatSupport/ReconcileLegacy.cpp \ 
../source/FormatSupport/ReconcileTIFF.cpp \ 
../source/FormatSupport/RIFF.cpp \ 
../source/FormatSupport/RIFF_Support.cpp \ 
../source/FormatSupport/SWF_Support.cpp \ 
../source/FormatSupport/TIFF_FileWriter.cpp \ 
../source/FormatSupport/TIFF_MemoryReader.cpp \ 
../source/FormatSupport/TIFF_Support.cpp \ 
../source/FormatSupport/XDCAM_Support.cpp \ 
../source/FormatSupport/XMPScanner.cpp \ 
../source/HandlerRegistry.cpp \ 
../source/FileHandlers/AIFF_Handler.cpp \ 
../source/FileHandlers/WAVE_Handler.cpp \ 
../source/FormatSupport/ID3_Support.cpp \ 
../source/FormatSupport/AIFF/AIFFBehavior.cpp \ 
../source/FormatSupport/AIFF/AIFFMetadata.cpp \ 
../source/FormatSupport/AIFF/AIFFReconcile.cpp \ 
../source/FormatSupport/IFF/Chunk.cpp \ 
../source/FormatSupport/IFF/ChunkController.cpp\ 
../source/FormatSupport/IFF/ChunkPath.cpp \ 
../source/FormatSupport/IFF/IChunkBehavior.cpp \ 
../source/FormatSupport/WAVE/BEXTMetadata.cpp \ 
../source/FormatSupport/WAVE/CartMetadata.cpp \ 
../source/FormatSupport/WAVE/Cr8rMetadata.cpp \ 
../source/FormatSupport/WAVE/DISPMetadata.cpp \ 
../source/FormatSupport/WAVE/INFOMetadata.cpp \ 
../source/FormatSupport/WAVE/PrmLMetadata.cpp \ 
../source/FormatSupport/WAVE/WAVEBehavior.cpp \ 
../source/FormatSupport/WAVE/WAVEReconcile.cpp \ 
../source/NativeMetadataSupport/IMetadata.cpp \ 
../source/NativeMetadataSupport/IReconcile.cpp \ 
../source/NativeMetadataSupport/MetadataSet.cpp \ 
../source/PluginHandler/FileHandlerInstance.cpp \ 
../source/PluginHandler/HostAPIImpl.cpp \ 
../source/PluginHandler/Module.cpp \ 
../source/PluginHandler/OS_Utils_Linux.cpp \ 
../source/PluginHandler/PluginManager.cpp \ 
../source/PluginHandler/XMPAtoms.cpp \ 
../../source/Host_IO-UNIX.cpp \ 
../../source/XIO.cpp \ 
../../source/XMPFiles_IO.cpp \ 
../public/include/client-glue\TXMPMeta.incl_cpp 

LOCAL_CPPFLAGS := -std=c++0x 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../android-ndk-r8e/sources/cxx-  stl/gnu-libstdc++/4.6/libs/x86/include 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../android-ndk-r8e/sources/cxx- stl/gnu-libstdc++/4.6/include 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../../../../ 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../source 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../source 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../.. 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../public/include 
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../XMPFilesPlugins/api/source 

LOCAL_LDLIBS := $(LOCAL_PATH)/../obj/local/armeabi-v7a/libXMPCore.so 

LOCAL_MODULE := xmpfile 
LOCAL_MODULE_TAGS := optional 
include $(BUILD_SHARED_LIBRARY) 

을 그러나, 나는 NDK 빌드를 실행하려고 할 때, 그것은 다음과 같은 링크 오류 불평 : WXMPFiles.o을 : 기능 WXMPFiles_GetXMP_1 목록 :/홈/w18656/작업/xline2 /main-jb-qcpro-4.2-xline/motorola/hal/ispbypass/xmp/XMP-Toolkit-SDK-CS6/XMPFiles/jni/../source/WXMPFiles.cpp:288 : 오류 : 'TXMPMeta, std :: allocator >> :: TXMPMeta (XMPMeta *) '

TXMPMeta 클래스 구현은 상당히 혼란 스럽습니다. 정의가 TXMPMeta.hpp에있는 것처럼 보이고 클래스가 클라이언트 글/TXMPMeta.incl_cpp에 삽입됩니다.

그러나 XMPFiles.mak를 검사했는데 TXMPMeta.incl_cpp는 우리가 컴파일하는 파일 중 하나가 아닙니다. TXMPMeta 클래스의 구현을 어떻게 컴파일합니까? (다른 TXMPxxx.incl_cpp와 동일한 문제)

저는 8e android NDK를 사용 중이며 XMPCore 및 XMPFiles 용 기본 공유 라이브러리를 빌드하려고합니다.

도움 주셔서 감사합니다.

https://github.com/janrueegg/xmp 다음

하면, 안드로이드에 대한 컴파일 ANDROID_NDK을 설정해야 할 수있는 방법입니다 :

+0

포함이 컴파일 :'GREP를 -lr TXMPxxx.incl_cpp .'? – Samveen

+0

그 문제를 해결할 수 있었습니까? –

답변

1

은 내가, 소스 코드에 약간의 수정을 안드로이드에 대한 컴파일이 프로젝트를 체크 아웃 관리 생각 정확한 경로로

git clone https://github.com/janrueegg/xmp.git 
cd xmp/build 
export ANDROID_NDK=~/my-android-ndk 
make StaticReleaseAndroid 
mkdir -p xmp/lib 
cp -r ../public/include/ xmp/ 
cp ../public/libraries/i80386linux/release/*.ar xmp/lib 

정적 라이브러리가있는 "xmp"라는 폴더와 헤더가있는 포함 폴더가 있어야합니다.

그냥이 같은 모든 파일에 TXMPMeta.incl_cpp``검색을 시도 할 수 있습니다, 주어진 라이브러리 경로와 링크를 ... 당신이 리눅스 시스템에 있다면