1. 首页 > 科技

gcc编译-o是否可以把前置文件放在目标文件后面,比如gcc -o a.out hello.c?

gcc编译-o是否可以把前置文件放在目标文件后面,比如gcc -o a.out hello.c?

gcc 生成 .o 文件时问什么必须要目标文件名,不是可以默认吗?

总体看没同都

文件、段表、段内容格式

往内容看两者区别g++文件C++gcc文件作C首先符号规则(name mangling)连接库

有两种方法

1。保存好你编译的c文件,假如你的文件名是main.c,这是源文件,我们要把它编译成目标文件即以.o结束的文件(gcc -c main.c) ,再使用ll main*就可以查看到生成的目标文件,再将目标文件生成可执行文件(gcc -o main main.o) ,这里用main替代生成的可执行文件,再使用ll main*就可以查看到生成的可执行文件main,最后就是执行可执行文件了(sh main),这样就可以得到结果了。

2。可以一步到位,直接生成可执行文件,gcc -o main main.o,执行方法如方法一,用方法一可以看到详细的执行过程,建议使用方法1

gcc后面既有-c又有-o是什么意思?

-c和-o都是gcc编译器的可选参数。

-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。

-o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。

例如:

gcc -c test.c将生成test.o的目标文件

gcc -o app test.c将生成可执行程序app

gcc -c a.c -o a.o表示把源文件a.c编译成指定文件名a.o的中间目标文件(其实在这里,你把-o a.o省掉,效果是一样的,因为中间文件默认与源文件同名,只是后缀变化)。

扩展资料:

gcc -c与gcc -o以及不加参数的区别

-c               Compile and assemble, but do not link.

-o <file>        Place the output into <file>.

'none' means revert to the default behavior of guessing the language based on the file's extension.

中文翻译一下:

-c           编译和汇编,但不要链接。

-o <file>    将输出放入<文件>。

'无参数'      表示恢复为基于文件扩展名猜测语言的默认行为。

为什么GCC编译后不显示a.out文件?

gcc wom.c 将直接产生a.out,可直接执行

gcc -o wom wom.c 将产生wom,可直接执行

gcc -s wom.c 将产生wom.s,这是汇编

LInux 如何使用GCC编译器将一个文件夹下的100个.o文件打包成一个静态库文件(.a)

你已经用gcc编译出目标文件了,用ar工具打包成.a文件就行了啊,示例:

如上图,假设我有test1.c,test2.c两个源文件,先使用gcc -c *.c将源文件编译成目标文件,可以看到,生成了test1.o,test2.o两个目标文件,然后,使用ar命令:ar crv libtest.a *.o将该目录下的所有目标文件打包生成了libtest.a文件。这样,你在编译的时候就可以直接使用这个静态库了。