代码之家  ›  专栏  ›  技术社区  ›  franco yang

makefile中的循环main

  •  -2
  • franco yang  · 技术社区  · 2 年前

    当我使用我编写的Makefile运行“make”时,它会显示“Circular main<-main dependency dropped”如何解决?

    main: main main.cpp pair.cpp
        g++ -o main main.cpp pair.cpp
    generate:
        g++ -shared -fPIC -o libpair.so pair.cpp
    clean:
        rm main.exe
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   Chris HazardXD    2 年前
    main: main main.cpp pair.cpp
        g++ -o main main.cpp pair.cpp
    

    太多了 main 在你的makefile中,确保你知道第一个 主要的 是目标名称,第二个是由“其他东西”生成的可执行文件。

    tar_main: main_exec main.cpp pair.cpp
        g++ -o main_exec main.cpp pair.cpp
    

    假设我们这样修改你的makefile来识别这两条主线。在这里,生成目标 tar_main ,提出要求 main.cpp , pair.cpp main_exec .但我们没有 首席执行官 然而,它只能由target生成 塔鲁大街 ...

    所以 塔鲁大街 正在等待有人产生 首席执行官 并提供给它 塔鲁大街 只能由 塔鲁大街 它本身,在你的makefile中。这是一个死锁,循环可以被检测到,make会拒绝运行这个。