▼スレッド
│
└◇1513:DOS窓でMakeを実行するとError255 [鳥居] 10/06 17:20
└◇1514:Re:DOS窓でMakeを実行するとError255 [中島] 10/06
└◇1516:Re[2]:DOS窓でMakeを実行するとError255 [鳥居] 10/07 <
初めて投稿させていただきます。よろしくお願いします。スレッド一覧
WindowsXPを使用しているのですが、Windowsから直接Make
を実行する必要があり、試してみたのですが以下のエラーとなります。(中身はechoしているだけです。)
C:\eclipse\workspace\HelloWorld>make -f makefile1
echo Hello World!
make: *** [all] Error 255
デバッグオプションをつけて実行させてみた所、
;
Updating goal targets....
Considering target file `all'.
File `all' does not exist.
Finished prerequisites of target file `all'.
Must remake target `all'.
echo Hello World!
Putting child 0x1002c6b0 (all) PID 3028 on the chain.
Live child 0x1002c6b0 (all) PID 3028
Got a SIGCHLD; 1 unreaped children.
Reaping losing child 0x1002c6b0 PID 3028
make: *** [all] Error 255
Removing child 0x1002c6b0 PID 3028 from chain.
echoプロセスを立ち上げようとしているが何らかの原因で実行できてないのかなと思い、環境変数などを見直したのですが状況が変わらず参っていたところ、ユーザIDを変えてログオンしなおす(Windowsに)と実行できることがわかりました。
通常ドメインユーザとしてログオンしているのですが、ローカルユーザとしてログオンすると実行できるようです。
ドメインユーザのままで実行できるようにしたいのですが、どなたか方法を教えていただけないでしょうか?
(Makeは、"GNU Make 3.80" です。)
もうやっていたらごめんなさい。スレッド一覧
mkpasswd -d と mkgroup -d で passwdファイルと groupファイルを作り直せば
うまくいくと思います。
中島さん、ヒントありがとうございます。スレッド一覧
早速、passwdファイルとgroupファイルを作り直して実験しました。
結果は残念ながら「状況の変化なし」だったのですが、ドメインユーザとローカルユーザの違いへの疑いを捨てることができ、もう一度環境を見直すことができました。
結論から言うと、Pathの上での\cygwin\local\bin,\cygwin\binの位置でした。
通常私が使っている環境では後ろの方に置いていたのですが、実験的に作ったローカルユーザの環境では先頭に置いていました。
パスは通っていたので別に気にしていなかったのですがもしやと思い先頭に持ってきて実験したところ、Makeが正常に動作するようになりました。
(つまらないオチで申し訳ありません)
でも、実験の過程でDOSの外部コマンドは実行できるが、内部コマンドはError255で実行できないということもわかり、私には新たな知見でした。
本当の目的はEclipseとCDTプラグインでMy開発環境を作ろう(お金がないのでできるだけ安く)としていまして、その途中過程だったのです。
解決できなかったら、MinGWに乗り換えようかと考えていた所でした。
というわけで、教訓・・
(1)ドメインユーザでログインしていても、passwd,group
両ファイルはローカル設定で問題ない。
(2)DOS窓でcygwinコマンドを実行する場合、
bin, local\binはできるだけPathの前方の置く。
(3)MakeからDOSの内部コマンドは実行できない。
(よく考えれば当然かも・・)
というところでしょうか。
中島さん、ご指摘ありがとうございました。