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
作为依赖项。