←back to thread

Driving Compilers

(fabiensanglard.net)
161 points ibobev | 1 comments | | HN request time: 0.201s | source
Show context
gumby ◴[] No.41084337[source]
You can just say `make hello` — no Makefile required! And then run with `./hello` instead of invoking the more obscure a.out

Obviously that doesn’t scale, but for a beginner it’s simple.

replies(2): >>41085187 #>>41091454 #
1. Too ◴[] No.41091454[source]
This is because of built in implicit rules in gnu make. https://www.gnu.org/software/make/manual/html_node/Implicit-...

For bigger projects they are considered an anti-pattern and should be disabled (-r), because they can cause all kinds of surprises, (actually, using make to begin with is sortof an anti-pattern) . For example, implicit rules may try to compile using Fortran if it finds a file ending with .f, that's just the tip of the iceberg, getting unexpected outputs or missing outputs is another danger. There are also claims that disabling them can give a performance boost.