Geralmente, não. Você pode, claro, recompilar se você tiver o código-fonte. A razão pela qual isso falha pode ser uma das várias coisas, mas geralmente os aplicativos não conseguem transferir de um para o outro porque estão vinculados a bibliotecas dinâmicas que não são fornecidas pela outra plataforma. ( "Não fornecido" aqui também pode significar que "fornece a versão errada" , ou "fornecido, mas não no lugar esperado" além disso para "apenas não está lá" .
Se você construir um binário estático, as chances são muito melhores que ele seja executado, porque não depende de bibliotecas externas. Isso não é uma garantia - você ainda pode acabar com um binário que não será executado na outra plataforma devido a incompatibilidades de kernel ou outros problemas.
Se você executar o programa na linha de comando, deverá receber uma mensagem de erro que o ajudará a determinar exatamente por que ele não é executado.