[問題] makefile的問題

看板C_and_CPP (C/C++)作者 (費老大溫布頓加油)時間16年前 (2009/06/17 20:38), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
請問我的makefile 做 make的時候為什麼會找不到class裡面的函式呢 他會出現 undefined reference to buffer裡的函式 main.cpp是我的main function所在 當中會使用buffer.h 裡定義的buffer class (我在main.cpp裡有 include buffer.h) buffer.cpp 是 class function的所在地 為什麼我將class的header和function分開到.h和.cpp兩個檔之後就會出現這個問題? 而如果我將class的function都寫在 .h檔裡面然後再compile就不會出現這個問題呢? 下面是我的makefile ************************************************************ CC = g++ OPT = -O3 DEBUG = -g OTHER = CFLAGS = $(OPT) $(DEBUG) $(OTHER) SRCDIR = ./src SRCS = Buffer.cpp OBJS = $(SRCDIR)/Buffer.o \ main : $(OBJS) $(SRCDIR)/main.cpp $(CC) $(DBFLAGS) -o a.out $(SRCDIR)/main.cpp $(OBJS) #rm *.o Buffer.o : $(SRCDIR)/Buffer.cpp $(CC) $(CFLAGS) $(SRCDIR)/Buffer.cpp clean: @rm *.o a.out ************************************************************** 我找到原因了 我把inline function 也設在.cpp裡面 如果把inline furnction 放到.h裡,其他的function放在.cpp用make就可以成功了 那可以請問各位大家, inline函數一定也要放在.h檔裡嗎? 不能也放在.cpp檔裡嗎? ************************************************************** -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.135.131 ※ 編輯: choushan 來自: 140.116.135.131 (06/17 20:39)

06/17 22:37, , 1F
你的header 是說prototype? 你應該把function def. 在
06/17 22:37, 1F

06/17 22:37, , 2F
header file
06/17 22:37, 2F

06/17 22:50, , 3F
.h檔裡面不是要宣告class有什麼成員和function嗎?
06/17 22:50, 3F

06/17 22:50, , 4F
然後function的內容宣告在cpp裡阿
06/17 22:50, 4F

06/18 12:09, , 5F
原po把header內容貼上來看看
06/18 12:09, 5F
※ 編輯: choushan 來自: 140.116.187.204 (06/18 14:41)
文章代碼(AID): #1AEEFJvv (C_and_CPP)
文章代碼(AID): #1AEEFJvv (C_and_CPP)