Mavericksでyacc使っていたらコンパイルエラーになったときの対処法
ドラゴンブックを片手?にYACCの勉強をしていたのですが
yaccに作成したyファイルをgccでコンパイルしようとしたら次のようなエラーが
gcc ./y.tab.c ld: symbol(s) not found for architecturex86_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.cc言語系の開発はホント依存関係地獄ですよね
投稿者 baban 2014/04/06 at 12:03