确定C可执行文件名称

当我们编译C程序时,输出存储在a.out中。 我们如何将编译后的输出重定向到另一个文件?

大多数C编译器为此提供-o选项,例如:

 gcc -o gentext gentext.c cc -o mainprog -Llib -lmymath firstbit.c secondbit.o xlc -o coredump coredump.c 

-ofilename将使filename而不是a.out

根据手册:

 -o  Place the output into  

在C源自的Unix中,C程序通常是逐个模块编译的,然后编译的模块链接到可执行文件中。 对于由模块foo.cbar.c组成的项目,命令将如下所示:

 cc -c foo.c cc -c bar.c cc -o myprog foo.o bar.o 

(使用-c,输出文件名成为源文件,后缀替换为.o。)

这允许您只重新编译那些已经更改的模块,这对于大型程序来说可以节省大量时间,但也可能变得非常棘手。 (这部分通常使用make自动完成。)

对于单模块程序,首先编译到.o文件然后进行链接并没有任何意义,因此单个命令就足够了:

 cc -o foo foo.c 

对于单模块程序,通常将生成的可执行程序调用与没有.c后缀的C源文件相同。 对于多模块程序,没有硬性自定义输出是否以带有main函数的文件命名,因此您可以自由地发明任何您喜欢的内容。

编译使用:

 cc -o   

执行使用:

 ./