1

.C ファイルで定義された変数を .S プログラムで使用しようとしています。

.c ファイル:

const int var = 10;

.S ファイル内:

    .extern var
LDR lr, _VAR
_VAR: .word var

コンパイルできます。しかし、実行すると、「アプリケーションのテキスト セクションを変更できません。位置に依存しない実行可能ファイルには GCC オプション -fPIE を使用してください。」というエラー メッセージが表示されます。

クロス コンパイル ツールは arm-v7-linux-uclibceabi-gcc です。そしてターゲットはARM Cortex R4。

「.extern」はこのように使用できませんか?

ありがとう、シミス。

4

1 に答える 1

0

その変数に書き込もうとしていますか?もしかして組み立て中?これは読み取り専用のデータであり、おそらくリンカー スクリプトによってテキスト セクションに配置されているため、書き込みはできません。

于 2014-09-04T13:36:26.417 に答える