草庐IT

android - Android 上的 Python 3.3.2+

coder 2023-12-23 原文

我一直在尝试为 android 构建 Python 3.3.2,但我遇到了死胡同。我可能做错了什么。

这是我的构建脚本:

# Unpack Python
tar xvjf Python-3.3.2.tar.bz2
cd Python-3.3.2

# Setup Android NDK vars
export NDK=/home/jakob/dev/android/android-ndk-r9
export CROSS_COMPILE=arm-linux-androideabi
export CC=${CROSS_COMPILE}-gcc
export CXX=${CROSS_COMPILE}-g++
export SYSROOT=$NDK/platforms/android-18/arch-arm
export PATH=$PATH:$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/

# Create config.site file
echo 'ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no' > config.site

# Configure
CONFIG_SITE=config.site ./configure --build=x86-unknown-linux-gnu --host=$CROSS_COMPILE --disable-ipv6 LDFLAGS="-Wl,--allow-shlib-undefined -L$SYSROOT/usr/lib" CFLAGS="-mandroid -fomit-frame-pointer --sysroot $SYSROOT"

# Build
make

这里是 make 的输出:

arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/acceler.o Parser/acceler.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/grammar1.o Parser/grammar1.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/listnode.o Parser/listnode.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/node.o Parser/node.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/parser.o Parser/parser.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/bitset.o Parser/bitset.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/metagrammar.o Parser/metagrammar.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/firstsets.o Parser/firstsets.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/grammar.o Parser/grammar.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/pgen.o Parser/pgen.c
Parser/pgen.c: In function 'compile_atom':
Parser/pgen.c:282:9: warning: variable 'i' set but not used [-Wunused-but-set-variable]
    int i;
        ^
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/myreadline.o Parser/myreadline.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/parsetok.o Parser/parsetok.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/tokenizer.o Parser/tokenizer.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/abstract.o Objects/abstract.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/accu.o Objects/accu.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/boolobject.o Objects/boolobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/bytes_methods.o Objects/bytes_methods.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/bytesobject.o Objects/bytesobject.c
Objects/bytesobject.c: In function 'PyBytes_FromFormatV':
Objects/bytesobject.c:277:25: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'Py_ssize_t' [-Wformat=]
                        va_arg(vargs, Py_ssize_t));
                        ^
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/cellobject.o Objects/cellobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/classobject.o Objects/classobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/codeobject.o Objects/codeobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/complexobject.o Objects/complexobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/descrobject.o Objects/descrobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/enumobject.o Objects/enumobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/exceptions.o Objects/exceptions.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/genobject.o Objects/genobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/fileobject.o Objects/fileobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/floatobject.o Objects/floatobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/frameobject.o Objects/frameobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/funcobject.o Objects/funcobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/iterobject.o Objects/iterobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/listobject.o Objects/listobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/longobject.o Objects/longobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/dictobject.o Objects/dictobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/memoryobject.o Objects/memoryobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/methodobject.o Objects/methodobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/moduleobject.o Objects/moduleobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/namespaceobject.o Objects/namespaceobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/object.o Objects/object.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/obmalloc.o Objects/obmalloc.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/capsule.o Objects/capsule.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/rangeobject.o Objects/rangeobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/setobject.o Objects/setobject.c
Objects/setobject.c: In function 'set_insert_key':
Objects/setobject.c:217:25: warning: typedef 'lookupfunc' locally defined but not used [-Wunused-local-typedefs]
    typedef setentry *(*lookupfunc)(PySetObject *, PyObject *, Py_hash_t);
                        ^
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/sliceobject.o Objects/sliceobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/structseq.o Objects/structseq.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/tupleobject.o Objects/tupleobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/typeobject.o Objects/typeobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/unicodeobject.o Objects/unicodeobject.c
Objects/unicodeobject.c: In function '_Py_ReleaseInternedUnicodeStrings':
Objects/unicodeobject.c:14301:13: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'Py_ssize_t' [-Wformat=]
            n);
            ^
Objects/unicodeobject.c:14327:13: warning: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'Py_ssize_t' [-Wformat=]
            "mortal/immortal\n", mortal_size, immortal_size);
            ^
Objects/unicodeobject.c:14327:13: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'Py_ssize_t' [-Wformat=]
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/unicodectype.o Objects/unicodectype.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Objects/weakrefobject.o Objects/weakrefobject.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/_warnings.o Python/_warnings.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/Python-ast.o Python/Python-ast.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/asdl.o Python/asdl.c
make Parser/pgen
make[1]: Entering directory `/home/jakob/dev/qt5/Python-3.3.2'
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/dynamic_annotations.o Python/dynamic_annotations.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/mysnprintf.o Python/mysnprintf.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Python/pyctype.o Python/pyctype.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/tokenizer_pgen.o Parser/tokenizer_pgen.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/printgrammar.o Parser/printgrammar.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/parsetok_pgen.o Parser/parsetok_pgen.c
arm-linux-androideabi-gcc -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -mandroid -fomit-frame-pointer --sysroot /home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm    -I. -IInclude -I./Include    -DPy_BUILD_CORE -o Parser/pgenmain.o Parser/pgenmain.c
arm-linux-androideabi-gcc -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Wl,--allow-shlib-undefined -L/home/jakob/dev/android/android-ndk-r9/platforms/android-18/arch-arm/usr/lib  Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/dynamic_annotations.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/parsetok_pgen.o Parser/pgenmain.o -ldl  -o Parser/pgen
/home/jakob/dev/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
/home/jakob/dev/android/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [Parser/pgen] Error 1
make[1]: Leaving directory `/home/jakob/dev/qt5/Python-3.3.2'
make: *** [Include/graminit.h] Error 2

所以在开始使用 pgen 之前,一切看起来都不错,顺便说一句,它是为 ARM 构建的。所以我不知道在主机系统上调用它是否有意义。

请帮忙。

谢谢 Jakob Simon-Gaarde

最佳答案

FWIW 我能够通过 kivy/buildozer 在 Android 上获得 Python 3.5| + crystax (将 crystax 放在 ~/.buildozer/crystax-ndk-10.3.2 中)

安装 Android Studio所以你在命令行有 adb

Ubuntu 18.04 中的 Python 3.5

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt install python3.5

获取最新最好的 buildozer(2018 年秋季 python3 需要)

sudo -H pip install git+https://github.com/kivy/buildozer

做一个小试验台

mkdir py3android
cd py3android
mkdir src

源代码/main.py

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

buildozer.spec(先运行buildozer init来创建骨架)

[app]
title = My App
package.name = myapp
package.domain = com.mycompany
source.dir = ./src
source.include_exts = py,png,jpg
source.include_patterns = img/
version = 0.1
requirements = python3crystax,kivy,git+git://github.com/wolfgangp/python-for-android
orientation = portrait
osx.python_version = 3
osx.kivy_version = 1.9.1
fullscreen = 0
android.ndk = 10.3.2
android.ndk_path = ~/.buildozer/crystax-ndk-10.3.2
android.entrypoint = org.renpy.android.PythonActivity


[buildozer]
log_level = 2
warn_on_root = 1

git 库 wolfgangp/python-for-android 将被删除一次 this pull request接受了,那么可以改成android==master

然后 cd py3android,通过 USB 插入您的物理 android 设备(顺便说一句,您也可以使用模拟器)并简单地运行 buildozer android debug run logcat | grep -C 50 Traceback 查看您的应用程序并将任何回溯打印到日志。

关于android - Android 上的 Python 3.3.2+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419334/

有关android - Android 上的 Python 3.3.2+的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  6. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  7. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  8. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  10. ruby - 使用 `+=` 和 `send` 方法 - 2

    如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:

随机推荐