問題タブ [eabi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
785 参照

gcc - objcopy を使用して、ある ARM アーキテクチャから別のアーキテクチャにライブラリを変換できますか?

ARM Cortex A8 を使用するプロジェクトで、ARM Cortex M4 用にプリコンパイルされたライブラリを使用する必要があります。リンカーは自然にエラーを出します:

file "..." has a Tag_CPU_arch_profile attribute value of "77" that is different than one previously seen ("65"); combining incompatible files

arm-none-eabi-objcopy を使用してライブラリを変換できますか? 周辺機器やマイクロコントローラ自体に固有のコードは含まれていません。どちらもアームです。可能性が高いようですが、どうですか?

0 投票する
1 に答える
397 参照

android-ndk - HERE マップarmeabi-v7aライブラリは、armeabiファイル(Cライブラリ)を追加するときに削除されます Android.mkファイルに何か欠けていますか?

こんにちは、Android アプリケーションを使用した NDK および C/C++ 開発の初心者です。Android アプリケーションを C/C++ でコンパイルする際に、Android アプリケーションで問題が発生しています。sqlite 用のカスタム ライブラリをいくつか追加しました。誰かが私のプロジェクトに何が起こっているのか説明できますか? MK ファイルで構成する必要があるものはありますか? これをmkファイルに追加しましたAPP_ABI := armeabi armeabi-v7a

ここに私の Android.mk ファイルがあります

これが私のライブラリ構造です

プロジェクトの実行を開始すると、コンパイル時に armeabi-v7a ライブラリが自動的に削除されました。

NDK R10bを使用しました

明確にするために、2 つのライブラリは別のプロジェクトで動作していますが、それらを組み合わせると、Android アプリケーションのコンパイル時に armeabi-v7a の下にある HERE-Map ライブラリが削除されます。

誰かが私を助けてくれることを願っています..

ありがとう!

0 投票する
0 に答える
573 参照

arm - arm-none-eabi ツールチェーンのビルド時のエラー

序文: 私のビルド システムは Ubuntu 14.04 LTS サーバー エディションに基づいています。

arm-none-eabiツールチェーンの binutils をクロスコンパイルしているときに、よくある問題に遭遇しました。

からソースをダウンロードした後:

https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q3-update/+download/gcc-arm-none-eabi-4_8-2014q3-20140805-src.tar.bz2

tarball を抽出し、zlib に次のパッチを適用しました。

付属の PDF ガイドの指示に従ってください。次に、このsedパッチを適用しました:

./build-prerequisites.sh --skip_mingw32および./build-toolchain.sh --skip_mingw32スクリプトを起動しました。

ツールチェーン スクリプトは問題なく動作しますが、 binutils./build-prerequisites.sh --skip_mingw32のインストール手順でエラーが発生して終了します。

make呼び出しを呼び出しに置き換えて2番目のスクリプトも編集しましたmake MAKEFINFO=trueが、このエラーが発生します...

....それについて何か提案はありますか? これまでグーグルで調べてきたところ、これらの問題はUbuntuディストリビューションで作業するときに発生する一般的な問題であることがわかりましたが、まだ解決策を見つけることができません.

前もってありがとう、アルトゥーロ

0 投票する
1 に答える
1578 参照

heap-memory - ARM Cortex-M ヒープ アライメント

スタック アラインメントの問題に悩まされた後、ヒープも 8 オクテット境界にアラインする必要があるかどうか疑問に思い始めました。

ARM Cortex EABI は、外部関数へのすべての呼び出しについて、スタックを 8 アラインする必要があると述べています。ヒープの配置に制限があるかどうかについての情報は見つかりませんでした。ヒープも 8 でアラインする必要があるという提案がいくつか出回っているようですが、公開されているほとんどのメモリ管理コードでは 4 でアラインされています。

ヒープとスタックの間でコピーする場合、整列は保持されないため、スタック整列の要件は (ワード境界が尊重される限り) ヒープ整列とは何の関係もありません。また、8 オクテット幅の項目を指すときに、コンパイラが 8 アラインされたポインターに制限されるべき理由が思いつきません。

ヒープには4オクテットのアライメントで十分であることを誰でも確認できますか?

0 投票する
0 に答える
952 参照

assembly - ファイル ELF ARM EABI のセグメント .text のサイズを変更するにはどうすればよいですか?

ソースのない ELF ARM EABI ファイルがあります。バイナリ .so ファイルです。

ファイルのセグメント .text のサイズを拡張するにはどうすればよいですか?

このバイナリでこのブレーク コードを知っていますが、今のところ問題ありません。

0 投票する
1 に答える
50 参照

android - lollipop で共有ライブラリ関数が呼び出されない

Android ndkを使用してそれを構築したサードパーティ企業から.soライブラリを入手しました。このライブラリで定義されたいくつかの関数を呼び出すことになっています。

コードをコンパイルでき、リンクも適切に行われます。ただし、関数呼び出しは実際には発生しません。つまり、関数の呼び出しでエラーは発生しませんが、実際には関数を呼び出していません。入力として渡され、エクスポートされた関数からの出力であるサイズを変更していないためです。

どうすればこれをデバッグできますか? コンパイラ名マングリングと関係がありますか?

私はアンドロイドロリポップを使用しています。キットカットでも同じメカニズムが機能していました。

0 投票する
1 に答える
3964 参照

c - Rust と C のリンク: '__aeabi' 関数への未定義の参照

組み込みデバイスで Rust を使用するプロジェクトに取り組んでおり、C から呼び出すことができる関数を Rust で記述しようとしています。多かれ少なかれこのチュートリアルに従って、標準ライブラリなしでプロジェクトをコンパイルします: Embedded Rust Right今!

私の Rust コードは問題なく .o ファイルにコンパイルされますが、arm-none-eabi-ld を使用して C と Rust オブジェクト ファイルをリンクしようとすると問題が発生します。次のようなエラーがいくつか発生します。

私が最も困惑しているのは、オブジェクト ファイルをリンクしているだけなのに、エラーが Rust コードと libcore のコードの両方を参照していることです。

これらのエラーの意味と、リンカーがこれらの問題を解決できない理由を知っている人はいますか? ありがとう!

0 投票する
1 に答える
232 参照

linux - pthread でクロスコンパイルされたコードを実行中にエラーが発生しました

ARM_EABI クロスコンパイラを使用して、pthreads を使用して ARM Cortex A9 シミュレーションで実行するコードをコンパイルしています。問題なくコンパイルできますが (シミュレーションで正常に実行された他の非 pthread アプリケーションで行ったように)、シミュレートされた環境で pthread アプリケーションを実行しようとするとエラー メッセージが表示されます。 ARM (OS として Linux を実行している)。それは次のとおりです。

./pttest.exe: /lib/libpthread.so.0: バージョン情報がありません (./pttest.exe で必要)

調査を行ったところ、それは動的ライブラリであり、シミュレーターで利用可能なバージョンよりも高いバージョンでアプリケーションをコンパイルしているためであることがわかりました。

私の質問は次のとおりです。クロスコンパイラに、シミュレータの同じ pthread lib バージョンでアプリケーションを強制的にコンパイルさせるにはどうすればよいですか? 異なるバージョンの pthread をダウンロードできる場所はありますか? そして、それを設定する方法は?

申し訳ありませんが、私はその分野ではまったくの初心者です。