In the old Unix days at least, the linker would compare the time stamp on the index that ranlib created with the time stamp of the file (probably mtime) and would complain if the latter was more recent than the former. This meant that you had to re-run ranlib any time you copied the file (at least if you did not preserve the timestamps). That sounds like what is going on.