在android设备上运行本机adobe XMP

在android设备上运行本机adobe XMP,android,android-ndk,xmp,Android,Android Ndk,Xmp,我正在尝试将XMP工具包移植到android设备上。我成功地构建了xmpcore,并拥有一个libXMPCore.so。当我尝试使用ndk构建libXMPFile.so时,我遇到了两个我不理解的问题 1) 似乎libXMPFile.so依赖于libXMPCore.so。我设法将libXMPCore.so包含在libXMPFiles的Android.mk中。我的Android.mk如下所示: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #

我正在尝试将XMP工具包移植到android设备上。我成功地构建了xmpcore,并拥有一个libXMPCore.so。当我尝试使用ndk构建libXMPFile.so时,我遇到了两个我不理解的问题

1) 似乎libXMPFile.so依赖于libXMPCore.so。我设法将libXMPCore.so包含在libXMPFiles的Android.mk中。我的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 build时,它会抱怨链接错误,例如: WXMPFiles.o:在函数WXMPFiles_GetXMP_1:/home/w18656/workspace/xline2/main-jb-qcpro-4.2-xline/motorola/hal/isppass/xmp/xmp-Toolkit-SDK-CS6/XMPFiles/jni/。/source/WXMPFiles.cpp:288:错误:未定义对“txpmeta,std::分配器>>的引用:::txpmeta(XMPMeta*)”

对于TXMPMeta类的实现,我感到相当困惑。似乎定义在TXMPMeta.hpp中,类的实现在client glue/TXMPMeta.incl_cpp中

但是,我检查了XMPFiles.mak,并且TXMPMeta.incl_cpp不是我们编译的文件之一。我们如何在中编译类TXMPMeta的实现?(与其他TXMPxxx.incl_cpp的问题相同)

我正在使用8eAndroidNDK,并试图为XMPCore和XMPFiles构建一个本地共享库


感谢您的帮助。

我想我已经成功地为android编译了它,对源代码做了一些修改,请查看此项目:

下面是如何为android编译它,请确保将android\u NDK设置为正确的路径

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”的带有静态库的文件夹和一个带有标题的include文件夹


只需使用这个include路径和指向给定库的链接进行编译…

我想我通过对源代码的一些修改,成功地为android编译了它,请查看此项目:

下面是如何为android编译它,请确保将android\u NDK设置为正确的路径

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”的带有静态库的文件夹和一个带有标题的include文件夹


只需使用此包含路径和指向给定库的链接进行编译…

如果您在linux系统上,是否可以尝试在所有文件中搜索
TXMPMeta.incl\u cpp
,如下所示:
grep-lr TXMPxxx.incl\u cpp.
?您解决了该问题吗?如果您在linux系统上,您是否可以尝试在以下所有文件中搜索
TXMPMeta.incl\u cpp
grep-lr TXMPxxx.incl\u cpp.
?您是否解决了该问题?