Você forneceu informações suficientes para determinar qual é o problema, mas não como corrigi-lo.
A mensagem 'Erro de sintaxe: "(" inesperado "evidentemente vem de um shell. Por que um shell está tentando executar seu binário? Porque o kernel tentou e desistiu. Quando isso acontece, o sudo decide que isso pode ser um shell script que carece de um cabeçalho adequado e tenta invocar um shell de sua escolha (o sudo tenta executar sh
).
Por que o kernel falhou ao executar o programa? Porque o executável não está em um formato suportado. Não é meramente devido a ser compilado para a arquitetura errada (por exemplo, tentar executar um binário x86 de 64 bits em um sistema de 32 bits ou vice-versa) ou para o sistema operacional errado (por exemplo, tentar executar um executável do FreeBSD Linux): o kernel não reconhece o arquivo como estando em um formato executável. Por exemplo, se você tentou executar isso no Linux, significa que o que você tem não é um binário ELF . Entre os sistemas operacionais comuns, a tentativa de executar um binário macOS no Linux ou vice-versa causaria isso.
Observe que o problema não se deve a permissões inválidas ou a bibliotecas ausentes. Se qualquer um deles fosse o problema, o kernel reportaria um erro diferente e o sudo não tentaria rodar um shell.
A solução é compilar o programa para o sistema operacional correto e a arquitetura correta. Se você não puder compilar na mesma máquina em que você executa o programa, talvez seja necessário configurar um compilador cruzado . Se você não tem como recompilar o programa, pode haver uma maneira de executá-lo em um emulador, mas isso geralmente é muito mais difícil e lento do que recompilar, portanto, tente-o apenas como último recurso.