2017-10-03 29 views
0

私はこれがロングショットであることを知っています。AndroidでPythonを実行しようとしています - cmakeを使って

このGitHub Pythonプロジェクトを使用して、私は現在、実験的なバージョンのgradleを使ってPythonをAndroidでビルドすることができます。私たちはメインラインのgradleと最新のAndroid Studioにアップグレードしようとしていますので、私たちはcMakeを使ってすべてのNDKを構築しようとしています。実行するために必要なものはすべて用意されていますが、Pythonを起動するとすぐに_socketをインポートできません。

私たちはすべて同じassestsとPythonをプロジェクトに持っています。すべての共有ライブラリが含まれているので、コンパイルとリンクが考えられます。私はソケットのものをインポートすることができない欠けている何かアイデア?私はこれがインポートして実行しようとしているCモジュールだと思っていますが、何が違うのか分かりません。

enter image description here

cmake_minimum_required(VERSION 3.4.1) 
 
project(workflow) 
 

 
set(CMAKE_ANDROID_STL_TYPE gnustl_shared) 
 
set(CMAKE_SYSTEM_VERSION 23) 
 

 
# configure directory variables for use throughout this file 
 
set(distribution_dir ${CMAKE_SOURCE_DIR}/../jniLibs) 
 
set(jni_src_dir ${CMAKE_SOURCE_DIR}/../jni) 
 

 
# set all our include directories (header locations) 
 
include_directories(${jni_src_dir}/asr/inc 
 
        ${jni_src_dir}/ext/android/audioin/inc 
 
        ${jni_src_dir}/asr 
 
        ${jni_src_dir}/python 
 
        ${jni_src_dir}/pdd 
 
        ${jni_src_dir}/pdd/os 
 
        ${jni_src_dir} 
 
) 
 

 
# define the 3rd party libraries to include in this project 
 
# this includes all Nuance stuff, and our custom built python lib 
 
add_library(libgenericdca SHARED IMPORTED) 
 
set_target_properties(libgenericdca PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libgenericdca.so) 
 
add_library(libvocon3200_sem SHARED IMPORTED) 
 
set_target_properties(libvocon3200_sem PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_sem.so) 
 
add_library(libpal_audio SHARED IMPORTED) 
 
set_target_properties(libpal_audio PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpal_audio.so) 
 
add_library(libpal_core SHARED IMPORTED) 
 
set_target_properties(libpal_core PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpal_core.so) 
 
add_library(libpython35m SHARED IMPORTED) 
 
set_target_properties(libpython35m PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libpython3.5m.so) 
 
add_library(libvocon3200_asr SHARED IMPORTED) 
 
set_target_properties(libvocon3200_asr PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_asr.so) 
 
add_library(libvocon3200_base SHARED IMPORTED) 
 
set_target_properties(libvocon3200_base PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_base.so) 
 
add_library(libvocon3200_gram2 SHARED IMPORTED) 
 
set_target_properties(libvocon3200_gram2 PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_gram2.so) 
 
add_library(libvocon3200_platform SHARED IMPORTED) 
 
set_target_properties(libvocon3200_platform PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_platform.so) 
 
add_library(libvocon3200_pron SHARED IMPORTED) 
 
set_target_properties(libvocon3200_pron PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_pron.so) 
 
add_library(libvocon3200_sem3 SHARED IMPORTED) 
 
set_target_properties(libvocon3200_sem3 PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon3200_sem3.so) 
 
add_library(libvocon_ext_heap SHARED IMPORTED) 
 
set_target_properties(libvocon_ext_heap PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon_ext_heap.so) 
 
add_library(libvocon_ext_stream SHARED IMPORTED) 
 
set_target_properties(libvocon_ext_stream PROPERTIES IMPORTED_LOCATION ${distribution_dir}/${ANDROID_ABI}/libvocon_ext_stream.so) 
 

 
# set various C and CXX(++) flags 
 
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG") 
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") 
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") 
 

 
# recursive wildcard search to find all the right cpp and c source files to compile 
 
file(GLOB_RECURSE source_files ${jni_src_dir}/asr/*.cpp 
 
           ${jni_src_dir}/ext/android/audioin/src/*.c 
 
           ${jni_src_dir}/asr/*.cpp 
 
           ${jni_src_dir}/pdd/*.cpp 
 
           ${jni_src_dir}/pdd/os/*.cpp 
 
           ${jni_src_dir}/*.cpp) 
 
SET(workflow_source ${source_files}) 
 

 
# finally, set up our workflow library and attach the source files above (this causes cmake to compile the sources) 
 
add_library(workflow SHARED ${workflow_source}) 
 
# set our workflow library to be C++ 
 
SET_TARGET_PROPERTIES (workflow PROPERTIES LINKER_LANGUAGE CXX) 
 

 
# lastly, set to link against the 3rd party libs above 
 
target_link_libraries(workflow 
 
         android 
 
         libgenericdca 
 
         libvocon3200_sem 
 
         libpal_audio 
 
         libpal_core 
 
         libpython35m 
 
         libvocon3200_asr 
 
         libvocon3200_base 
 
         libvocon3200_gram2 
 
         libvocon3200_platform 
 
         libvocon3200_pron 
 
         libvocon3200_sem3 
 
         libvocon_ext_heap 
 
         libvocon_ext_stream 
 
         log 
 
         atomic)

+1

ポストプロジェクトの構造とAndroid CMAKE –

+0

Marcos、私はcmakeの構造を投稿しました。見ていただきありがとうございます。 –

+0

@MarcosVasconcelos投稿に追加したことがわかっているかどうかはわかりません。どんな助けもありがとう。 –

答えて

0

のAndroidメーカー3リリースされたと同時期のGradle 4.1がリリースされました。これらの両方を使用することで、私は問題なくPythonをビルドして実行することができます。

私はGradle 4.1のリリースで問題が修正されたと仮定しています。

関連する問題