Так работает 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
в качестве зависимостей.