我正在使用GNU/Linux 64位Oracle VM编译一个简单的c程序main.c:int main(){ return 0; }
gcc
命令是: gcc-c main.c -o 输出
运行时: ./output,它会导致错误: "无法执行二进制文件:执行格式错误">
为什么 gcc 编译的结果是可执行文件与机器的架构(SYSV 而不是 GNU/Linux(不符?
提前致谢
-c
标志告诉gcc
生成对象文件。目标文件不是可执行的,而是输入到用于创建可执行文件的链接器。
要么删除-c
标志:
gcc main.c -o output
或者构建目标文件,然后链接它:
gcc -c main.c
gcc main.o -o output
有关 GCC 命令行参数的更多信息,请阅读您的 GCC 版本的文档。