Mavericksでyacc使っていたらコンパイルエラーになったときの対処法

ドラゴンブックを片手?にYACCの勉強をしていたのですが

yaccに作成したyファイルをgccでコンパイルしようとしたら次のようなエラーが

gcc ./y.tab.c ld: symbol(s) not found for architecture

x86_64 x86_64という文字列からして64bit対応周りであろうというのは分かるのですが

それ以上のヒントがないのでいろいろとググりならがなんとか解決したのでメモ

まず、現在のgccコマンドですが、言語ファイルを指定しないで「gcc」とコマンドだけ打ったら分かるのですが

clang: error: no input files

なんでgccでコンパイルしたいのにclangでコンパイルしようとしているねん!

非常に納得いきませんが、gccコマンドがclangへのエイリアスに設定されています!

なので実際にgccでコンパイルしたいときは、gccのコンパイラを探してきてそちらでコンパイルを行ってやらないといけません

幸い「gcc-」まで打ってtabで補完をかけてみると「gcc-4.2」が見つかりましたので こちらで以下の引数で実行をしてやることで解決出来ました

gcc-4.2 -ly -ll ./y.tab.c

c言語系の開発はホント依存関係地獄ですよね

 

投稿者 baban 2014/04/06 at 12:03

no comments no trackbacks

コメント

(leave url/email »)

前のコメント