Re: [問題] code blocks 和 include <--眼殘
離個題回推文...
※ 引述《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
推
04/15 16:12, , 1F
04/15 16:12, 1F
推
04/16 15:04, , 2F
04/16 15:04, 2F
推
04/19 02:37, , 3F
04/19 02:37, 3F
→
04/19 23:51, , 4F
04/19 23:51, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):