Criei um programa de utilidade em .NET/C# pelo meu computador e compilei/dei publish para linux-arm64 pois queria usar ele no meu celular pelo Termux.
Compilei/dei publish para o arquivo sair em um arquivo único “auto contido” acho que posso dizer assim, para que o dispositivo cliente (nesse caso meu celular) não precisasse ter o .NET instalado.
Sei que deveria compilar pra ARM64 pois ao ir no Termux e rodar o comando uname -m
a saída é aarch64
.
Dito isso fiz a transferência do programa para o meu celular e fui contente rodar o meu programa, no entanto quando dei o comando ./MyProgram
uma mensagem de erro aparece: no such file or directory: ./MyProgram
É estranho essa mensagem de erro aparece pois o arquivo definitivamente existe e está na mesma pasta. A prova disso é que se rodar o comando ls
posso ver listado na pasta atual o MyProgram, um settings.json e mais alguns arquivos.
Usei o utilitário file para inspecionar o arquivo e a saída foi a seguinte:
ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=b7c7d776f9f00b686802241d0d3f81cdf7d887fa, stripped
Isso indica que o arquivo está formatado corretamente para ARM64, mas não consigo entender por que não está sendo executado.
Também tentei dar um chmod +x para dar permissão de execução, mas nada acontece, sempre me retorna que o arquivo não existe, mas ele definitivamente existe…
Aqui está o que já tentei:
Verificação da Existência do Arquivo:
Confirmado com ls que o arquivo MyProgram está na pasta correta.
Permissões de Execução: Usei chmod +x MyProgram para garantir permissões de execução, mas o problema persiste.
Inspeção do Arquivo:
Usei o utilitário file para verificar o arquivo, que retornou:
ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0
Além disso, passei dois dias pesquisando possíveis soluções, mas não consegui resolver o problema.
Richard Garcia is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.