3

Tremolo for iPhoneをコンパイルしようとしています。ファイル bitwise.c bitwiseARM.s codebook.c dpen.s dsp.c floor0.c floor1.c floor1ARM.s floor_lookup.c framing.c info.c mapping0.c mdct.c mdctARM.s misc を取り込みました。 .c res012.c を新しいターゲットに追加し、次のカスタム設定を追加しました。

GCC_PREPROCESSOR_DEFINITIONS = _ARM_ASSEM_
GCC_C_LANGUAGE_STANDARD = gnu99
GCC_THUMB_SUPPORT = YES

...しかし、xcode が最初のアセンブラー ファイル bitwiseARM.s に到達するとすぐに、次のようなエラーが発生します。

/tremolo/bitwiseARM.s:3:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:3:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:4:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:4:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:5:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:5:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:6:Unknown pseudo-op: .global
/tremolo/bitwiseARM.s:6:Rest of line ignored. 1st junk character valued 111 (o).
/tremolo/bitwiseARM.s:11:bad instruction `STMFD r13!,{r10,r11,r14}'
/tremolo/bitwiseARM.s:12:bad instruction `LDMIA r0,{r2,r3,r12}'
/tremolo/bitwiseARM.s:16:bad instruction `SUBS r2,r2,r1'
/tremolo/bitwiseARM.s:17:bad instruction `BLT look_slow'
/tremolo/bitwiseARM.s:19:bad instruction `LDR r10,[r3]'

最初のエラーはググることができ、.global を .globl に変更すると最初のエラーが修正されましたが、それでも間違った指示が表示され、その理由がわかりません。ARM命令セットをグーグルで検索すると、上記の命令は私には有効に見えます。親指のサポートを切り替えて、armv6 の代わりに armv7 だけをビルドしようとしましたが、どちらも役に立ちませんでした。

4

2 に答える 2

7

Igor が言うように、Apple のガスのフォークは古くからあり、次のことを望んでいます。

  • .global は .globl に置き換えられました
  • 小文字のすべての命令
  • 交換 ';' 「@」によるコメント区切り
  • アドレス インポートのスタブ ラベル

Tremolo .s ファイル用のプリプロセッサ awk スクリプトを作成して、Xcode で受け入れられるようにしました。Robin 経由で提供します。

または、これを試すこともできます。

于 2010-10-04T14:43:05.950 に答える
0

bitwiseARM.s を Thumb モードでコンパイルしようとしているようです (たとえば、Thumb はPUSHの代わりに使用しますSTMFD SP!,)。Apple の Gas がどのディレクティブをサポートしているかはわかりませんが (非常に古いフォークに基づいています) 、ファイルの先頭に.armorを追加してみてください。.code32

于 2010-08-27T19:29:56.140 に答える