我有一個系統,我生成一個生成文件,並在Mac OS X下完美工作。當我在Linux下運行它時,出現一個奇怪的問題。我設法減少我的生成文件到一個非常簡單的例子:gnumake奇怪的重定向問題
compile: gcc -o prog *.c &> compile__ chm: chmod u=rwx,g=rwx,o= prog both0: gcc -o prog *.c &> compile__ ; \ chmod u=rwx,g=rwx,o= prog both1: gcc -o prog *.c ; \ chmod u=rwx,g=rwx,o= prog
這個想法是編譯一個文件,然後更改其權限。如果我執行命令序列:
make compile make chm
一切工作正常。但是,如果我執行:
make both0
我得到的消息:
chmod: cannot access `prog': No such file or directory
和權限不會改變。另一方面,如果我執行:
make both1
權限已正確更改。唯一的區別是在兩個我都刪除了兩個1下的重定向「&> compile__」。
任何想法?
我忘了提及我在Ubuntu Linux下運行gnumake 3.81版。 – Tsf 2011-04-14 14:47:00
適用於我:CentOS版本5.4(最終版); GNU Make 3.81; gcc(GCC)4.1.2 20080704(Red Hat 4.1.2-46);你好ç; – 2011-04-14 15:03:46
我在另一個Linux上測試了它:Fedora release 9(Sulfur)和相同的GNU Make 3.81。沒問題!它似乎只發生在我的安裝下:Ubuntu 10.04.2 LTS,內核2.6.32-30。 – Tsf 2011-04-14 16:48:03