Примечание: было бы проще, если бы вы пронумеровали все строки.
Вы используете старую версию GCC, которая неправильно обрабатывает extern. Если вы используете современную версию, вы увидите три проблемы с вашим кодом.
Во-первых, локальный x в main () не используется (предупреждение). Во-вторых, статический глобальный x не используется (предупреждение). В-третьих, внешний х не определен (ошибка).
Либо вы не должны объявлять глобальную статическую x, либо вы должны использовать :: x без спецификации extern.