1

クロスコンパイルを行っています。コードを ndk ビルドしようとしていますが、 Python.hをインクルードすると、 LONG_BIT 定義がプラットフォームに対して間違っているように見えます (gcc/glibc 構成が正しくありませんか?)というエラーが発生します。

インターネットで同様のケースをいくつか見つけましたが、問題はまだ解決されていません。それはvirtualenvの問題ですか?gcc に関する何かがインストールされています。それで、誰かがこの問題を解決する方法を提案しますか?

私は64ビットのpython 2.7を使用しています。Python.h は、Kivy の python-for-android プロジェクトから来ています。

エラー:

kivy@kivy-VirtualBox:~/AndroidStudioProjects/Pytest/python-for-android/dist/default/libs/armeabi$ /home/kivy/Android/Sdk/ndk-bundle/ndk-build NDK_PROJECT_PATH=/home/kivy/AndroidStudioProjects/Pytest APP_BUILD_SCRIPT=/home/kivy/AndroidStudioProjects/Pytest/app/src/main/jni/android.mk

[arm64-v8a] Compile        : pyjni <= pyjni.c
In file included from /home/kivy/AndroidStudioProjects/Pytest/app/src/main/jni/../..
/../../python-for-android/dist/default/python-install/include/python2.7/Python.h:58:0,

from /home/kivy/AndroidStudioProjects/Pytest/app/src/main/jni/pyjni.c:1:
/home/kivy/AndroidStudioProjects/Pytest/app/src/main/jni/../../.
./../python-for-android/dist/default/python-install/include/python2.7/pyport.h:849:2: 

error: 
#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).

"
#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
^
make: *** [/home/kivy/AndroidStudioProjects/Pytest/obj/local/arm64-v8a/objs/pyjni/pyjni.o] Error 1

android.mk

LOCAL_PATH := $(call my-dir)

#square
include $(CLEAR_VARS)

LOCAL_MODULE    := square
LOCAL_SRC_FILES := square.c

include $(BUILD_SHARED_LIBRARY)

# Build libpyjni.so
include $(CLEAR_VARS)
LOCAL_MODULE    := pyjni
LOCAL_SRC_FILES := pyjni.c
LOCAL_CFLAGS := -I $(LOCAL_PATH)/../../../../python-for-android/dist/default/python-install/include/python2.7/
LOCAL_LDFLAGS += -L $(LOCAL_PATH)/../../../../python-for-android/dist/default/libs/armeabi/
LOCAL_SHARED_LIBRARIES += python2.7  # This line links to libpython2.7
LOCAL_LDLIBS += -llog                # This line links to the Android log
include $(BUILD_SHARED_LIBRARY)

# Include libpython2.7.so
include $(CLEAR_VARS)
LOCAL_MODULE := python2.7
LOCAL_SRC_FILES := ../../../../python-for-android/dist/default/libs/armeabi/libpython2.7.so
include $(PREBUILT_SHARED_LIBRARY)
4

0 に答える 0