"He is a player we have admired for some time now and I know he will provide our squad with great quality," Arsenal manager Arsene Wenger said on the club's official website.
Chamakh joined Arsenal after his contract with Bordeaux, the club he helped to the French League title in 2009, expired.
"This is a dream come true and a great joy to be joining Arsenal," the 26-year-old, who once said he was disgusted that Bordeaux refused to let him depart after they won the league, said.
"My goal was always to play in the Premier League and Arsenal was the choice of my heart.
"Without any hesitation, Arsenal was my preferred club. The team and history of Arsenal, they make me dream."
Chamakh, who joined Bordeaux at the age of 16, scored 79 goals in 293 appearances with the club.
Arsenal are looking to bolster their squad after finishing a fifth successive season empty handed.