The 30-year-old ex-Sunderland striker has put pen to paper on a one-year deal at Brunton Park having joined the club on trial in pre-season. He is the Cumbrians' 10th summer signing.
Elliott is in contention to make his competitive debut in Saturday's opening game of the League Two season against newly-promoted Luton.
He started out in England with Manchester City before moving to Sunderland in 2004 and has had subsequent spells at Wolves, Preston and Norwich before joining Hearts in 2010.
Elliott returned to England with Coventry in the summer of 2012 and scored four goals in 25 appearances for the club.