看板 C_and_CPP 關於我們 聯絡資訊
離個題回推文... ※ 引述《shiengchyi (上班族之朝九晚六?!)》之銘言: : → james732:寫程式真的要頭腦清楚,要不然很容易發生悲劇 04/15 12:04 : → james732:我做過把 rm -rf xxx.o 打成 rm -rf xxx.c ... 04/15 12:04 : 推 shec1213:樓上...我也有學長做了 gcc xxx.c -o xxx.c 然後崩潰了 04/15 14:05 : → buganini:請愛用vcs啊.. 04/15 15:21 : → buganini:還有Makefile 04/15 15:21 Makefile 沒寫好也會有一樣的悲劇的... 以下是真實案例: 這學期當了 compiler 的助教 作業一是 scanner 的程式作業 因為學生人數眾多 規定了要有特定的 Makefile target 以便編譯執行 這是某個學生的 Makefile 中編譯出執行檔的 target: hw1: hw1.c hw1.l flex hw1.l gcc -o hw1 hw1.c lex.yy.c 另外他交上來的 source 就是 hw1.c 和 hw1.l 看起來一切都沒問題 但是改的時候一 make 就出事了 噴了一堆 link error 仔細看了 make 的輸出才發現事情是這樣的: 他交上來的檔案裡 hw1.c 的最後修改時間比 hw1.l 早兩秒 因此 make 看到了同檔名的 .c 比 .l 還"舊" 觸發了 .c.l 的預設規則 就把他的 hw1.c 給蓋掉了 XD 然後接著才執行這個 target 所以再 flex 一次 等於 hw1.c 和 lex.yy.c 兩個檔案內容相同 於是就噴了一大票重覆定義的 link error... 後來是重新解開他上繳的檔案 touch 一下再 make 就什麼事都沒有了 我個人比較好奇的是竟然寫作過程中一次都沒發生過這種悲劇 這學生也頗厲害的 XD -- ˊ_▂▃▄▂_ˋ. ◣          ▅▅ ▅▅ ι●╮   ./◤_▂▃▄▂_◥ \'▊   HARUHI █████ <■┘   ◤◤◥█◥◥█Δ   ISM    By-gamejye ¢|\   ▌▌ζ(▏●‵◥′●)Ψ ▏           █    ⊿Δ    /|▋ |\ ▎         ハルヒ主義      ▄█ ◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界をいに盛り上げるための宮ハルヒの    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.131
loveme00835:XD 04/15 16:12
xatier:XD 04/16 15:04
lmr3796:那個學生可是卷一了很多學期XD 04/19 02:37
firejox:XD 04/19 23:51