2010-05-25 3 views
3

iPhone 용 Tremolo을 컴파일하려고합니다. 내가 파일을 뽑아 버렸어 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 기타 새 대상으로 .c 인 res012.c 다음 사용자 지정 설정 추가 :빌드 ARM 어셈블러 보비스 디코더 lib 'Tremolo'for iPhone

GCC_PREPROCESSOR_DEFINITIONS = _ARM_ASSEM_ 
GCC_C_LANGUAGE_STANDARD = gnu99 
GCC_THUMB_SUPPORT = YES 

을 ...하지만 엑스 코드는 첫 번째 어셈블러 파일, 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]' 

Google에서 할 수있는 첫 번째 오류는 .global을 .globl로 변경하면 첫 번째 오류가 해결되지만 여전히 잘못된 지침이 표시되며 그 이유는 알 수 없습니다. ARM 명령어 세트에 대한 인터넷 검색은 위의 지시 사항이 저에게 유효합니다. 엄지 지원을 토글 링하려고 시도했지만 armv6 대신 armv7 만 구축했지만 도움이되지 않았습니다.

답변

7

, 가스 애플의 포크 고대하고 싶어 : 대체 소문자

  • 에서 .globl
  • 모든 지침으로 대체 .global

    • ';' 와 주석 분리 '@'나는 트레몰로에 대한 사전 프로세서 awk 스크립트를 작성했습니다

    주소 수입

  • 스텁 라벨은 내가 통해 다시 기여할 것이다하는 엑스 코드에 허용 할 파일을 .S 남자 이름.

    this을 시도해 볼 수도 있습니다.

  • +0

    이 스크립트는 어딘가 사용할 수 있습니까? iOS 용 트레몰로를 컴파일하려하지만 지금까지는 운이 없다. – Peterdk

    +0

    임시 해결책으로 모든 .s 파일을 라이브러리에서 제거하고 "ONLY_C = 1"플래그로 빌드 할 수 있습니다. 이렇게하면 ov_open_callbacks와 작동하는 작동하는 ogg 디코더를 사용할 수 있습니다. – Peterdk

    0

    Thumb 모드에서 bitwiseARM.s을 컴파일하는 것처럼 보입니다 (예 : Thumb은 STMFD SP!, 대신 PUSH을 사용함). 애플의 가스가 어떤 지령을 지원하는지 (정확히 고대의 포크를 기반으로 한 것)는 확실하지 않지만, 파일의 시작 부분에 .arm 또는 .code32을 추가해보십시오. 이고르가 말한대로