0

スタティック ライブラリとしてビルドすると、ソース コードは Android JellyBean 4.1.2 でmm command. しかし、 opencv フォルダーandroid/external/opencvstatic libraryとしてビルドしようとすると、次の変更が加えられますandroid/external/opencv/Android.mk

+ LOCAL_SHARED_LIBRARIES+= libdl

- include $(BUILD_STATIC_LIBRARY)
+ include $(BUILD_SHARED_LIBRARY)

- LOCAL_STATIC_LIBRARIES := libcxcore libcv libcvaux libcvml libcvhighgui
+ LOCAL_SHARED_LIBRARIES := libcxcore libcv libcvaux libcvml libcvhighgui

次のエラーが表示されます。

android/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: internal error in thumb_branch_common, at /tmp/android-8532/src/build/../binutils/binutils-2.21/gold/arm.cc:4148
collect2: ld returned 1 exit status
make: *** [out/target/product/mydevice/obj/SHARED_LIBRARIES/libcxcore_intermediates/LINKED/libcxcore.so] Error 1

このエラーを修正する方法について何か考えはありますか?

前もって感謝します。よろしく、ジャイ

4

1 に答える 1

2

、、、arm-linux-androideabi/bin/ld:thumb_branch_common の内部エラー、/tmp/android-8532/src/build/../binutils/binutils-2.21/gold/arm.cc:4148 collect2: ld が返されました1 終了ステータス

このエラーを修正する方法について何か考えはありますか?

Binutils、ファイル arm.cc、4148 行目に内部エラーがありました (Binutils 内)。

新しい Binutils (またはそれ以前) を試すか、バグを修正してパッチを提出してください。

別のツールチェーン (別の Binutils を使用) に切り替えて、それを試すこともできます。コンパイラ スイッチは、バグを回避するのに十分な操作を変更する場合があります。

コンパイルしているコードのソース ファイル内の関数の順序を単純に変更する可能性があります (gold/arm.cc ではなく、コンパイラのバグがある場所であり、ソースを変更します)、Binutils は新しく順序付けされたものを読み取ります別の方法でコーディングして、Binutils のバグを回避します。

また、リンクしているコード (.o ファイル) がディスク上またはコンパイラのバグによって破損したか、間違ったエンディアン (など) のためのものであり、それが検出されていない可能性もあります。

PS: Thumb-2 コード (コンパイラのツールチェーン内) はバグフリーではありません (お気付きのように)。

修正に取り組んでいる人については、こちらを参照してください: http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/gold&id=b72f3238ad32ab420306a0226d8c2e57c52ddf45

...そしてこれが彼らが思いついたものです: http://sourceware.org/bugzilla/attachment.cgi?id=6284&action=diff

于 2013-06-05T04:15:51.250 に答える