Di base il compilatore dovrebbe marcare già di suo l'eseguibile generato come eseguibile, per cui il chmod in teoria dovrebbe essere superfluo.
Domanda: il tuo utente è proprietario del file/della directory? Perché questo potrebbe essere un motivo per cui potrebbe non farti fa cambiare i permessi...
---edit---
... ma non tornerebbe con il fatto che non chmod non ti dà errori... fai così: dai
codice:
ls -l
sia prima che dopo il chmod che vediamo.

Inoltre: per caso stai lavorando su una partizione FAT (es. una chiavetta) o che comunque non supporta i permessi UNIX?