【发布时间】:2019-02-12 10:43:21
【问题描述】:
我正在使用 GNU/Linux 64 位 Oracle VM 编译一个简单的 c 程序 main.c:int main(){ return 0; }
gcc 命令是: gcc -c main.c -o 输出
运行时:./output,报错:
“无法执行二进制文件:执行格式错误”
【问题讨论】:
标签: c linux gcc x86-64 file-format
我正在使用 GNU/Linux 64 位 Oracle VM 编译一个简单的 c 程序 main.c:int main(){ return 0; }
gcc 命令是: gcc -c main.c -o 输出
运行时:./output,报错:
“无法执行二进制文件:执行格式错误”
【问题讨论】:
标签: c linux gcc x86-64 file-format
-c 标志告诉gcc 生成一个目标文件。目标文件不可执行,而是输入到用于创建可执行文件的链接器中。
要么放弃-c 标志:
gcc main.c -o output
或者构建目标文件然后链接它:
gcc -c main.c
gcc main.o -o output
有关 GCC 命令行参数的更多信息,请read the documentation 获取您的 GCC 版本。
【讨论】: