执行文件时出错:bash: ./Test.elf: 无法执行:找不到所需文件

问题描述 投票:0回答:1

今天用C做了一个测试程序,就是一个简单的“Hello world”,

#include <stdio.h>

int main(){
  printf("Hello, world!\n");
  return 0;
}

但我想用另一种方式编译它。我首先用

编译它
gcc -c Test.c -o Test.o

然后将其链接到

ld Test.o -lc --entry main -o Test.elf

。 --entry main 以便它理解入口函数是 main 和 -lc 使用 libc.so 库进行 printf,但由于某种原因,当我尝试使用 ./Test.elf 运行它时,它告诉我这个错误: 重击: . /Test.elf:无法执行:找不到所需的文件。如果我不尝试使用 gdb 运行,它会告诉我错误代码是 127。事实上,我正在 Android 上尝试所有这些(以便能够在 aarch64 中编程),但我不这样做不知道它是否会影响这个错误。有人可以帮助我吗?

我不知道我需要做什么。

android ld arm64
1个回答
0
投票

ld
了解
main
start
。 Start 是真正的入口点,它设置 C 运行时,然后调用
main

最简单的事情就是不指定入口点。

© www.soinside.com 2019 - 2024. All rights reserved.