mingw32-make запускает только первую строку зависимости - PullRequest
1 голос
/ 23 сентября 2019

Мой 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.Насколько я знаю, этот make-файл синтаксически правильный, mingw просто не может найти другие строки.

1 Ответ

1 голос
/ 23 сентября 2019

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

...