1官网下载地址:
http://support.dcmtk.org/redmine/projects/dcmtk/files
2.参照官方wiki http://support.dcmtk.org/redmine/projects/dcmtk/wiki/Howto_CompileAndroid 安装NDK、SDK、CMake、msys。
1.编译环境:
下载Linux的NDK解压,再生成standalone toolchain,
<ndkpath>/build/tools/make-standalone-toolchain.sh --platform=Android-18 --install-dir=my-Android-toolchain-path --arch=(x86 or arm)
2.设置环境变量:
export ANDROID_NDK=my-android-toolchain-path
3.cmake配置:
cmake -DCMAKE_TOOLCHAIN_FILE=<dcmtkpath>/CMake/android.toolchain.cmake -DDCMTK_ANDROID_TOOLCHAIN_VERIFIED=TRUE .
4.修改:
<dcmtkpath>/CMake/dcmtkUseAndroidSDK.cmake的DCMTK_ANDROID_START_EMULATOR和DCMTK_SETUP_ANDROID_EMULATOR函数直接RETURN(),这样就用不着AndroidSDK了。
用普通cmake生成的config\include\dcmtk\config\arith.h替换相同目录下的文件。
ofstd\libsrc\ofstd.cc里面的getlogin_r改成getlogin实现,要不在x86下编不过。
5.make -j8编译,交叉编译完成!!
将编译目录下lib里面需要的.a拷到NDK工程,把需要的头文件也包含进来。Application.mk添加APP_STL := gnustl_static,在android.mk里面导入对应的.a
include $(CLEAR_VARS)
LOCAL_MODULE := oflog
LOCAL_SRC_FILES := liboflog.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := ofstd
LOCAL_SRC_FILES := libofstd.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := dcmimgle
LOCAL_SRC_FILES := libdcmimgle.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := i2d
LOCAL_SRC_FILES := libi2d.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := dcmdata
LOCAL_SRC_FILES := libdcmdata.a
LOCAL_STATIC_LIBRARIES += oflog
LOCAL_STATIC_LIBRARIES += ofstd
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := dicom_toolkit
LOCAL_LDLIBS =-lm -llog
LOCAL_LDLIBS += -landroid
LOCAL_LDLIBS += -lz
LOCAL_CFLAGS += -g -O0
LOCAL_SRC_FILES += dicom_toolkit.cpp
LOCAL_STATIC_LIBRARIES += i2d
LOCAL_STATIC_LIBRARIES += dcmimgle
LOCAL_STATIC_LIBRARIES += dcmdata
LOCAL_SHARED_LIBRARIES += sdk
include $(BUILD_SHARED_LIBRARY)