[問題] 關於Unix的makefile

看板Linux作者 (YenYi)時間16年前 (2010/02/11 00:42), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/1
不好意思,不知道是否合適PO在此 如果不合適,馬上刪除 各位大大好 小弟不才,最近在UNIX上研究雲端的Sector/Sphere 但由於官方版本僅支援Linux 因此以Vmware安裝Ubuntu 將相關套件安裝完成後,compile當然沒問題 但由於工作需要,需嘗試Unix HP-UX主機上執行 但在make官方內建的Makefile時,就發生錯誤 在Makefile中,會 include一個Makefile.common Makefile.common如下 1. C++ = g++ 2. 3. DEBUG = 1 4. STATIC = 0 5. 6. CCFLAGS = -I. 7. LDFLAGS = -lstdc++ -lpthread -lssl -L. 8. 9. ifeq ($(DEBUG), 1) 10. CCFLAGS += -Wall -g 11.else 12. CCFLAGS += -O3 13.endif Make 錯誤訊息如下: Make:必須是一個分隔元於規則行 10。停止。 *** 錯誤跳出碼 1 已確認第10、12行前為 tab,非空白 不知道是否有高手願意指導~~ 不好意思,麻煩了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.77.189

02/11 00:45, , 1F
可以用gmake嗎?
02/11 00:45, 1F

02/11 02:35, , 2F
猜想是+=沒被支援... 我第一次看到這種寫法的 XD
02/11 02:35, 2F

02/11 04:38, , 3F
+= ?=好像都蠻常看到的?
02/11 04:38, 3F

02/11 04:40, , 4F
不過在我平常看到的makefile裡面if else endif前面有.
02/11 04:40, 4F

02/11 23:18, , 5F
今天測試後gmake目前還能運作,但程式還沒修改完,不敢
02/11 23:18, 5F

02/11 23:19, , 6F
定論,另外在UNIX HP-UX的make,似乎真的不支援+=
02/11 23:19, 6F

02/11 23:19, , 7F
除了+=以外,發現只要有if else的地方,都會錯誤...
02/11 23:19, 7F

02/11 23:20, , 8F
不管if-else後接什麼都一樣,空白行也是..該不會HP-UX的
02/11 23:20, 8F

02/11 23:20, , 9F
make不支援if-else...
02/11 23:20, 9F

02/11 23:21, , 10F
buganini大~.是在哪? .if .else? 還是.CCFLAGS...?
02/11 23:21, 10F

02/12 00:35, , 11F
.if .else .endif
02/12 00:35, 11F

02/28 00:30, , 12F
make已經回答了. 空格的是tab值, make要的是空白.
02/28 00:30, 12F
文章代碼(AID): #1BSk8HCT (Linux)
文章代碼(AID): #1BSk8HCT (Linux)