c++ - (c)make - 递归编译

标签 c++ recursion makefile compilation cmake

假设我有这样的目录:

dir1
    main.cpp
    dir2
        abc.cpp
    dir3
        def.cpp
        dir4
            ghi.cpp
            jkl.cpp

假设 main.cpp 包含 dir2/abc.cpp 和 dir3/def.cpp,def.cpp 包含 dir4/ghi.cpp 和 dir4/jkl.cpp。

我的问题是,我怎样才能在 dir1/中有 一个 Makefile/CMakeLists.txt,它递归地进入每个目录并编译 *.cpp,然后“加入”它们?

对不起我的英语,希望我能很好地解释我的问题!

谢谢!

最佳答案

对于 makefile,dir1/Makefile 应该:

  • 声明 main.o 依赖于 dir2/abc.o 和 dir3/def.o
  • 声明如何创建dir2/abc.o和dir3/def.o

至于 cmake,它会“自动”检测此类依赖项(二进制依赖于 dir2/abc.o 和 dir3/def.o),因此实际上您不需要关心它。

关于c++ - (c)make - 递归编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1779722/

相关文章:

java - 使用 BigIntegers 和 memoization 调用递归方法时获取 NULL

javascript - 递归函数中的 typescript 中断与返回行为

c++ - 编译多个 cpp 文件错误 undefined reference to `main'

c - 在一个 makefile 中制作两个 C 程序

c++ - 理解 as-if 规则, "the program was executed as written"

c++ - 是否有与 Sse2 _mm_unpackhi/lo_epi32/64 和 _mm_shuffle_epi8/32 等效的 Neon?

c++ - 为什么这里 getline 比 scanf 快?

c++ - 好友功能问题

sql - 递归 CTE (T-SQL) 返回意外结果

linux - 来自外部源的 Makefile 调用