Reputation: 2996
In *.mak
file I receive commands "commence before first target. Stop."
I didn't change it before.
How to solve this problem?
Upvotes: 71
Views: 175244
Reputation: 440
This could be echoing outside the target, for instance
# Variable
BAR =
ifeq ($(FOO), 1)
@echo "FooBar" <----- generate the error
BAR += foobar
endif
# Targets
all:
...
...
Upvotes: 10
Reputation: 761
Also, make sure you dont have a space after \ in previous line Else this is the error
Upvotes: 5
Reputation: 539
This could also caused by mismatching brace/parenthesis.
$(TARGET}:
do_something
Just use parenthesises and you'll be fine.
Upvotes: 0
Reputation: 11
It's a simple Mistake while adding a new file you just have to make sure that \
is added to the file before and the new file remain as it is
eg.
Check Out what to do if i want to add a new file named customer.cc
Upvotes: 1
Reputation: 211
if you have added a new line, Make sure you have added next line syntax in previous line. typically if "\" is missing in your previous line of changes, you will get this error.
Upvotes: 21
Reputation: 14251
This means that there is a line which starts with a space, tab, or some other whitespace without having a target in front of it.
Upvotes: 60
Reputation: 212969
make
(or NMAKE
, or whatever flavour of make you are using) can be quite picky about the format of makefiles - check that you didn't actually edit the file in any way, e.g. changed line endings, spaces <-> tabs, etc.
Upvotes: 76