makefile 中的循环 main
Circular main in makefile
当我 运行 使用我编写的 Makefile 进行“制作”时,它显示“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
main: main main.cpp pair.cpp
g++ -o main main.cpp pair.cpp
你的 makefile 中有太多 main
,确保你知道第一个 main
是目标名称,第二个是由“其他东西”生成的可执行文件.
tar_main: main_exec main.cpp pair.cpp
g++ -o main_exec main.cpp pair.cpp
假设我们将您的 makefile 修改为这样以识别两个主电源。这里,要生成目标 tar_main
,make 需要 main.cpp
、pair.cpp
和 main_exec
。但是我们还没有 main_exec
,它只能由目标 tar_main
...
生成
所以 tar_main
正在等待某人生成 main_exec
并提供给它,而 tar_main
只能由 tar_main
自己生成,在你的 makefile 中。那是一个dead-lock,而且可以检测到循环,make会拒绝运行这个。
当我 运行 使用我编写的 Makefile 进行“制作”时,它显示“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
main: main main.cpp pair.cpp
g++ -o main main.cpp pair.cpp
你的 makefile 中有太多 main
,确保你知道第一个 main
是目标名称,第二个是由“其他东西”生成的可执行文件.
tar_main: main_exec main.cpp pair.cpp
g++ -o main_exec main.cpp pair.cpp
假设我们将您的 makefile 修改为这样以识别两个主电源。这里,要生成目标 tar_main
,make 需要 main.cpp
、pair.cpp
和 main_exec
。但是我们还没有 main_exec
,它只能由目标 tar_main
...
所以 tar_main
正在等待某人生成 main_exec
并提供给它,而 tar_main
只能由 tar_main
自己生成,在你的 makefile 中。那是一个dead-lock,而且可以检测到循环,make会拒绝运行这个。