mingw32-make只运行第一行依赖关系



My Makefile:

helloworldlib.obj: helloworldlib.cpp
g++ -Wall -o helloworldlib.obj -c helloworldlib.cpp
helloworld.obj: source.cpp
g++ -Wall -o helloworld.obj -c source.cpp
helloworld.exe: source.cpp helloworld.obj
g++ -Wall -o helloworld.exe helloworld.obj helloworldlib.obj

我不确定这有什么问题,当我运行 mingw32-make 时,它只执行第一个g++ -Wall -o helloworldlib.obj -c helloworldlib.cpp. 据我所知,这个 makefile 在语法上是正确的,mingw 似乎找不到其他行。

这就是make的工作方式。如果命令行上未提供目标(例如mingw32-make helloworld.exe(,默认情况下,它会构建文件中定义的第一个目标。例如:https://stackoverflow.com/a/2057716/2249356。

作为快速修复,您只需将helloworld.exe规则移动到文件顶部,然后make将构建所有规则。

而且,我认为最后一条规则应该读

helloworld.exe: helloworld.obj helloworldlib.obj
g++ -Wall -o helloworld.exe helloworld.obj helloworldlib.obj

而不是将source.cpp及其目标代码helloworld.obj作为依赖项。

最新更新