我正在尝试编译具有以下结构的项目

项目:

  • MakeFile
  • 可执行
  • Source1
  • .cxx
  • .h
  • Source2
  • .cxx
  • .h
  • 构建
  • * .o

  • 而且我很难编写Makefile进行编译。我目前有以下命令:
    Src1 = $(wildcard $(SRCDIR1)/*.cxx)
    Obj1 = $(patsubst $(SRCDIR1)/%.cxx, $(OBJDIR)/%.o, $(Src1))
    

    但是然后我很难为目标文件制定编译规则a)因为我不能再做:
    $(Obj1): %.cxx
        $(CXX) $(CFLAGS) -c $(@:.o=.cxx) -o $@
    

    因为'$ @'命令现在包括构建目录的路径,并且b)因为先决条件现在包括构建路径,所以我应该有一个源路径。我已经阅读了制造手册的大部分内容,试图找到解决方法,但是没有运气。
    任何解决方案的帮助表示赞赏!
    插口

    最佳答案

    从个人经验来看,在玩过“原始” Makefile之后,我真的建议您使用一些工具为您构建Makefile,例如automakecmake

    您仍然必须手动指定所有源文件-但至少我更喜欢手动摆弄Makefile。

    10-08 11:03