免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1390 | 回复: 1
打印 上一主题 下一主题

Makefile找不到依赖规则 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-30 18:51 |只看该作者 |倒序浏览

  1. #compiler and linker
  2. CXX  = g++
  3. CC   = gcc
  4. LINKER = g++
  5. MAKE   = make

  6. #control version save-dir
  7. ifdef HXHT_RELEASE
  8. BIN_DIR = ./release
  9. else
  10. BIN_DIR = ./debug
  11. endif

  12. #source code dir
  13. VPATH := ./src

  14. #target
  15. TARGET = $(BIN_DIR)/HikVideoSvrHC

  16. #compile macro
  17. COMP_MACRO = -D_REENTRANT -D__USE_POSIX -D__linux__ -DIP_DEBUG

  18. #compile flags
  19. CCFLAGS += $(COMP_MACRO) -g -Wall

  20. #libs
  21. LIB_DIR  = -L./hc4000_sdk -L./g729decoder
  22. SYS_LIBS = -lpthread -ldl -lstdc++ -lm -lcrypt
  23. PROJECT_LIBS = -lACE -lds40xxsdk -lg729decoder
  24. LIBS = $(SYS_LIBS) $(LIB_DIR) $(PROJECT_LIBS)

  25. #optimization
  26. CCFLAGS += -O2

  27. # EACH DIRECTORY WITH HEADERS MUST BE APPENDED IN THIS MANNER TO THE CCFLAGS
  28. CCFLAGS += -I.
  29. CCFLAGS += -I$(ACE_ROOT)
  30. #CCFLAGS += -I./src
  31. # EACH DIRECTORY WITH A STATIC LIBRARY MUST BE APPENDED IN THIS MANNER TO THE LINKOPTS
  32. CXXFLAGS := $(CCFLAGS)
  33. CFLAGS =

  34. CPPFILES =      AlarmHandler.cpp   \
  35.                 AlarmInGetPolicyReq.cpp   \
  36.                 AlarmInSetPolicyReq.cpp   \
  37.                .....
  38.                .....
  39. CFILES =

  40. OBJ_DIR = ./obj/

  41. all: $(TARGET)

  42. OBJS = $(addprefix $(OBJ_DIR), $(notdir $(CPPFILES:%.cpp=%.o)))

  43. $(TARGET): $(OBJS)
  44.         $(LINKER) -o $@ $(OBJS) $(CXXFLAGS) $(LIBS)

  45. %.o:%.cpp
  46.         $(CXX) $(CXXFLAGS) -c $^ -o $(OBJ_DIR)$(notdir $@)

  47. %.o:%.c
  48.         $(CC) $(CCFLAGS) -c $^ -o $(OBJ_DIR)$(notdir $@)
  49. check:
  50.         ldd -r $(NAME)
  51. clean:
  52.         -rm -f $(TARGET) $(OBJS)

  53. .PHONY:all check clean
复制代码


[ace@SSWork HikVideoServer]$ make
make: *** No rule to make target `obj/AlarmHandler.o', needed by `debug/HikVideoSvrHC'.  Stop.

我想把.o 编译到另外一个文件夹...结果找不到依赖规则

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2006-12-01 10:30 |只看该作者
问题已经解决...借鉴了一下开源项目的makefile   外国人就是牛X
$(OBJ_DIR)%.o:%.cpp
        $(CXX) $(CXXFLAGS) -c $^ -o $(OBJ_DIR)$(notdir $@)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP