首页 > GCC编译器 阅读:797

GCC -o选项(生成可执行文件)

< 上一页GCC -c选项 GCC -o选项下一页 >

pk10开户推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应!

-o选项用来生成二进制可执行文件,它的格式为:

[file1] -o [file2]

[file1] 表示输入文件(也即要处理的文件),它可以是源文件,也可以是汇编文件或者是目标文件;[file2] 表示输出文件(也即处理的结果),也就是生成的可执行文件。

[file1] 和 [file2] 可以是一个文件,也可以是一组文件:
  • 如果 [file1] 是一组文件,那么就表示有多个输入文件;
  • 如果 [file2] 是一组文件,那么相当于生成了该二进制可执行文件的多个副本。

将源文件作为输入文件

现在有 func.c 和 main.c 两个源文件。其中 func.c 的内容为:
#include <stdio.h>
void func(){
    printf("n");
}

main.c 的内容为:
#include <stdio.h>
int main(void)
{
    func();
    return 0;
}

下面对 func.c 和 main.c 进行编译:

$gcc main.c func.c -o app

编译完成后,使用 ls 命令查看生成的文件:
-rwxrwxr-x. 1 mozhiyan mozhiyan 8572 9月  26 14:00 app
-rw-rw-r--. 1 mozhiyan mozhiyan   60 9月  26 13:33 func.c
-rw-rw-r--. 1 mozhiyan mozhiyan   66 9月  26 13:59 main.c
func.c 和 main.c 两个源文件被编译、链接后生成了一个名为 app 的可执行文件。

可以通过下面的方式来执行 app 程序:

$ ./app

将目标文件作为输入文件

gcc 的输入文件不仅仅可以是C语言源文件(.c文件),也可以是编译好的目标文件(.o文件)。

首先使用-c选项来生成两个目标文件:

$gcc -c func.c main.c

然后将两个目标文件作为输入文件:

$gcc func.o main.o -o app

使用 ls 命令来查看整个过程中生成的所有文件:
-rwxrwxr-x. 1 mozhiyan mozhiyan 8572 9月  26 14:00 app
-rw-rw-r--. 1 mozhiyan mozhiyan   60 9月  26 13:33 func.c
-rw-rw-r--. 1 mozhiyan mozhiyan 1488 9月  26 13:33 func.o
-rw-rw-r--. 1 mozhiyan mozhiyan   66 9月  26 13:59 main.c
-rw-rw-r--. 1 mozhiyan mozhiyan 1432 9月  26 13:33 main.o
最后运行生成的 app 程序:

$ ./app

< 上一页GCC -c选项 GCC -o选项下一页 >