No rule to make foo.cpp needed by foo.o ???
Igor.Nekrestyanov at Sun.COM
Tue Dec 22 01:45:13 UTC 2009
Check the output of "gnumake -dd" looking for everything related to
files in question.
It will tell you why rules are not fired.
On 12/21/09 4:48 PM, David Holmes - Sun Microsystems wrote:
> Well I fixed the time problem but that didn't fix the problem. I just
> updated three files and had to try the build three times before it
> worked - each time it reported needing to make one of the updated files.
> David Holmes - Sun Microsystems said the following on 12/21/09 17:05:
>> Deepak Mathews said the following on 12/21/09 16:52:
>>> Are you sure about the path to foo.cpp in the makefile is correctly
>>> set during compilation.
>> Yes paths are fine.
>>> It also can be a timestamp issue, but only if the updated file has a
>>> modification time older...it might be trivial... but the if system
>>> time is behind it can cause this issue..
>> I discovered that simply re-issuing the build command also fixes it.
>> Just seems to take two goes to get it right.
>> And the build machine time is slightly behind the fileserver on which
>> the source files reside, so I think it is a timestamp issue.
>>> On Mon, Dec 21, 2009 at 8:46 AM, David Holmes - Sun Microsystems
>>> <David.Holmes at sun.com <mailto:David.Holmes at sun.com>> wrote:
>>> I'm doing a build and get a compilation error in foo.cpp, so I fix
>>> the problem that caused the error and make then aborts with
>>> "No rule to make target 'foo.cpp' needed by 'foo.o'. Stop"
>>> I have to do a clean and then re-build to get past this.
>>> This is building hotspot on linux and the make version is 3.81
>>> This is driving me nuts and wasting a lot of time!
>>> Anyone got any idea why make is doing this? It is as-if it can't
>>> find the updated cpp file. Could it be a timestamp issue?
>>> David Holmes
More information about the build-dev