Você pode escrever seu código onde quiser, são apenas arquivos de texto.
Se você deseja compilar o código para uma plataforma que é diferente daquela em que o compilador roda, então você precisa de um compilador cruzado (por definição).
Os compiladores cruzados geralmente são usados para criar código usando computadores desktop poderosos do que os sistemas incorporados de recursos limitados, incluindo smartphones.
Usando o Cygwin talvez, você pode provavelmente criar gcc
como um compilador cruzado para rodar no MS Windows e gerar código para o Linux amd64 (por exemplo). Colocar toda a toolchain em funcionamento não será trivial, já que você precisa incluir arquivos e versões compiladas de bibliotecas básicas e muito mais antes de começar a desenvolver. Você pode querer procurar alguém que já tenha construído e empacotado tudo isso.