포럼: 도움 (Thread #4500)

bisonを実行すると_spawnvpのエラーが発生する (2004-02-19 11:54 by rgoto #8007)

後藤と申します。

 MinGW付属のbisonを実行すると次のエラーとなり、
正常処理できません。

E:\Temp\bison>bison scalc.y
bison: _spawnvp: No such file or directory

 ソース "scalc.y"は某サイトから引用したため、
内容は控えさせていただきますが、どのソースを入
力しても結果は同じでしたし、この scalc.y自体を
Linux のyaccに入力すると正常処理されました。

 因みにOSはWinXP、bisonのバージョンは次のとお
りです。

E:\Temp\bison>bison -V
bison (GNU Bison) 1.875
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 Web 上で同一エラーを検索しても有効な解決策まで
示されていません。

http://www.opaque.net/pipermail/ming-fun/2003-March/001278.html

 解決策をご存知の方、お教え願います。 

RE: bisonを実行すると_spawnvpのエラーが発生する (2004-02-20 23:25 by takagi-n #8025)

gccのビルド時にもbisonを使っていますが、問題なく動作しています。
推測の域は出ませんが、MinGWのbisonはMSYS上で使用することが前提となっているのではないでしょうか?
仮にそうだとすると、msys\1.0\binにPATHを通せば動くような気もします。
無責任発言で申し訳ありません。
Reply to #8007

RE: bisonを実行すると_spawnvpのエラーが発生する (2004-02-21 18:11 by myaccount #8035)

あのエラーはm4がない時に出ていたような。
スケルトンがm4になっちまってます。
その他にも完成度が低いようで、
snapshotの下のbisonは使わんほうが良いです。
MingWのアーカイブではなく、
GNUのftpから1.25を落として、
files.cをちょいと修正し、makeします。
これでOK。

#ifdef MSDOS
tmp_base = getenv ("TMP");
if (tmp_base == 0)
tmp_base = "";
strlwr (infile);
#elif defined (__MINGW32__) /* 追加 */
tmp_base = getenv ("TEMP"); /* 追加 */
if (tmp_base == 0)/* 追加 */
tmp_base = "";/* 追加 */
#endif /* MSDOS */
Reply to #8007