No rule to make foo.cpp needed by foo.o ???

David Holmes - Sun Microsystems David.Holmes at Sun.COM
Tue Dec 22 00:48:20 UTC 2009


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.

Bizarre.

David

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.
> 
> Thanks,
> David
> 
>> 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?
>>
>>     Thanks,
>>     David Holmes
>>
>>



More information about the build-dev mailing list