gcc 에서 mabi 옵션이 무엇인가요?

지나가는새의 이미지

삽질을 게속 하다가

결국 library가 -mabi=n64로 되어 있어서 게속 에러가 났던 것이네요.

몇 가지 해 봤는데,

모두 빼던지 -> OK

모두 n32로 하던지 -> OK

모두 64로 하던지 -> OK

이네요..

gcc 설명을 봐도 모르것고.. 이게 무슨 옵션인지.. 궁금합니다.

cinsk의 이미지

-mabi는 gcc가 만들어 낼 코드의 abi(application binary interface)를 결정하기 위해 쓰입니다. ABI는 register의 용도, parameter passing등 다양한 규칙들을 지정해 놓은 것으로, CPU/OS/compiler가 같더라도 ABI가 다르게 지정되면, 코드가 동작하지 않습니다.

n32를 쓴 것을 보니 MIPS 용인 것 같은데, google에서 "mips abi"로 검색하면 자세한 사항을 알 수 있을 것 같군요.

대표적인? ABI specification은 아래 URL에서 얻을 수 있습니다:

http://www.sco.com/developers/devspecs/

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/