We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1:修改glog 里面 使用到的Android没有的<execinfo.h>
"execinfo.h"是glibc里面的,因为android是bionic,而非glibc。
将/src/tn/glog/src/tacktrace_generic-inl.h 里面的#include <execinfo.h>注释掉。
/src/tn/glog/src/tacktrace_generic-inl.h
#include <execinfo.h>
将 backtrace(stack, kStackLength); 替换为 0;
backtrace(stack, kStackLength);
0;
2: 将 CMakeLists.txt 里面的 -fopenmp去掉,否则会导致运行时报错 android library "libomp.so" not found.。
CMakeLists.txt
-fopenmp
android library "libomp.so" not found.
cmake_minimum_required(VERSION 3.5) project(tts) set(CMAKE_CXX_FLAGS " -O3 -w -std=c++11 ") set(CMAKE_C_FLAGS " -O3 -w -std=c++11 ") include_directories(tts PUBLIC ./eigen-3.4.0 ./src/tn/header ./include ./src/header) set(lib_src ./src/tn/glog/src/demangle.cc ./src/tn/glog/src/logging.cc ./src/tn/glog/src/raw_logging.cc ./src/tn/glog/src/symbolize.cc ./src/tn/glog/src/utilities.cc ./src/tn/glog/src/vlog_is_on.cc ./src/tn/glog/src/signalhandler.cc ./src/tn/gflags/src/gflags.cc ./src/tn/gflags/src/gflags_reporting.cc ./src/tn/gflags/src/gflags_completions.cc ./src/tn/openfst/src/lib/compat.cc ./src/tn/openfst/src/lib/flags.cc ./src/tn/openfst/src/lib/fst.cc ./src/tn/openfst/src/lib/fst-types.cc ./src/tn/openfst/src/lib/mapped-file.cc ./src/tn/openfst/src/lib/properties.cc ./src/tn/openfst/src/lib/symbol-table.cc ./src/tn/openfst/src/lib/symbol-table-ops.cc ./src/tn/openfst/src/lib/util.cc ./src/tn/openfst/src/lib/weight.cc ./src/tn/processor.cc ./src/tn/token_parser.cc ./src/tn/utf8_string.cc ./src/engipa/EnglishText2Id.cpp ./src/engipa/InitIPASymbols.cpp ./src/engipa/alphabet.cpp ./src/engipa/ipa.cpp ./src/hz2py/hanzi2phoneid.cpp ./src/hz2py/Hanz2Piny.cpp ./src/hz2py/pinyinmap.cpp ./src/nn_op/nn_conv1d.cpp ./src/nn_op/nn_softmax.cpp ./src/nn_op/nn_layer_norm.cpp ./src/nn_op/nn_relu.cpp ./src/nn_op/nn_gelu.cpp ./src/nn_op/nn_tanh.cpp ./src/nn_op/nn_flip.cpp ./src/nn_op/nn_cumsum.cpp ./src/nn_op/nn_softplus.cpp ./src/nn_op/nn_clamp_min.cpp ./src/nn_op/nn_sigmoid.cpp ./src/nn_op/nn_conv1d_transposed.cpp ./src/nn_op/nn_leaky_relu.cpp ./src/platform/tts_file_io.cpp ./src/platform/tts_logger.cpp ./src/utils/utils.cpp ./src/modules/iStft.cpp ./src/modules/hann.cpp ./src/modules/attention_encoder.cpp ./src/modules/multi_head_attention.cpp ./src/modules/ffn.cpp ./src/modules/ConvFlow.cpp ./src/modules/DDSConv.cpp ./src/modules/ElementwiseAffine.cpp ./src/modules/random_gen.cpp ./src/modules/ResidualCouplingLayer.cpp ./src/modules/ResBlock1.cpp ./src/modules/WN.cpp ./src/modules/pqmf.cpp ./src/models/TextEncoder.cpp ./src/models/StochasticDurationPredictor.cpp ./src/models/FixDurationPredictor.cpp ./src/models/DurationPredictor_base.cpp ./src/models/ResidualCouplingBlock.cpp ./src/models/Generator_base.cpp ./src/models/Generator_hifigan.cpp ./src/models/Generator_MS.cpp ./src/models/Generator_Istft.cpp ./src/models/Generator_MBB.cpp ./src/models/SynthesizerTrn.cpp) add_library(tts SHARED ${lib_src}) add_library(tts_static STATIC ${lib_src}) add_executable(tts_test ./test/main.cpp ${lib_src} )
可以在 CMakeLists.txt 下新建android-build目录,创建编译脚本,更改一下ndk路径,运行,在libs目录下就得到生成产物。
#!/bin/bash ##设置NDK路径 NDK_PATH=~/ndk/android-ndk-r21e ##CMakeLists.txt所在目录 PROJECT_DIR=$(dirname $(pwd)) BUILD_DIR=$(pwd) JOBS=$(nproc 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 4) echo "Using $JOBS jobs for make" buildAndroid(){ ABI=$1 rm -rf "$ABI" mkdir -p "$ABI" && cd "$ABI" rm -rf CMakeCache.txt rm -rf CMakeFiles cmake \ -DCMAKE_TOOLCHAIN_FILE=$NDK_PATH/build/cmake/android.toolchain.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_VERSION=21 \ -DANDROID_STL=c++_shared \ -DANDROID_LD=lld \ -DANDROID_ABI=$ABI \ -DANDROID_NDK=$NDK_PATH \ -DANDROID_PLATFORM=android-21 \ -DANDROID_TOOLCHAIN=clang \ -DBUILD_SHARED_LIBS=1 $PROJECT_DIR make -j$JOBS sleep 2 mkdir -p "$BUILD_DIR/libs/$ABI" mv -f libtts.so $BUILD_DIR/libs/$ABI/libtts.so mv -f libtts_static.a $BUILD_DIR/libs/$ABI/libtts_static.a mv -f tts_test $BUILD_DIR/libs/$ABI/tts_test sleep 2 cd .. } for cpu in "arm64-v8a" "armeabi-v7a" "x86" "x86_64" do buildAndroid $cpu done
The text was updated successfully, but these errors were encountered:
大佬分享,谢谢~
Sorry, something went wrong.
主要修改2处 1:修改glog 里面 使用到的Android没有的<execinfo.h> "execinfo.h"是glibc里面的,因为android是bionic,而非glibc。 将/src/tn/glog/src/tacktrace_generic-inl.h 里面的#include <execinfo.h>注释掉。 将 backtrace(stack, kStackLength); 替换为 0; 2: 将 CMakeLists.txt 里面的 -fopenmp去掉,否则会导致运行时报错 android library "libomp.so" not found.。 修改后的CMakeLists.txt: 可以在 CMakeLists.txt 下新建android-build目录,创建编译脚本,更改一下ndk路径,运行,在libs目录下就得到生成产物。 编译脚本内容:
修改后的CMakeLists.txt: 可以在 CMakeLists.txt 下新建android-build目录,创建编译脚本,更改一下ndk路径,运行,在libs目录下就得到生成产物。
编译脚本内容:
非常感谢,我在下次更新的时候,可以把你这个加进去。:-)
你好,请问可以分享下Android 编译 demo 吗
No branches or pull requests
主要修改2处
1:修改glog 里面 使用到的Android没有的<execinfo.h>
2: 将
CMakeLists.txt
里面的-fopenmp
去掉,否则会导致运行时报错android library "libomp.so" not found.
。修改后的CMakeLists.txt:
可以在
CMakeLists.txt
下新建android-build目录,创建编译脚本,更改一下ndk路径,运行,在libs目录下就得到生成产物。编译脚本内容:
The text was updated successfully, but these errors were encountered: