애플 개발자들은 flex 를 사용하지 않나봅니다. lex & yacc 를 사용해보고 있는데 os x 에 기본으로 있는 flex 때문에 한참 삽질했네요. 기본으로 제공되는 flex 를 이용할 경우 _main symbol 이 multiple definition 되었다고 에러가 나게 됩니다.
혹시나 기본으로 제공되는 flex 가 잘못 빌드되어있는게 아닐까 싶어서 gentoo osx 를 이용해서 새로 빌드했더니 잘되는군요. 애플 미워요!
.
.
.
나중에 알고보니 제가 flex 를 잘못 사용한 것이었네요. flex 등의 경우 yyin, yywrap 등의 input 과 terminal 을 만났을 때 해야할 행동 등을 따로 정의해주지 않은 상황에서도 테스트가 가능하도록 test stuff 를 제공합니다. lex library 와 link 가 필요한 건 이 경우 뿐인데, 제가 모르고 -ll 플래그를 붙였기 때문에 생긴 문제였네요.