导航:首页 > 程序命令 > gcc命令编译加o参数的区别

gcc命令编译加o参数的区别

发布时间:2022-05-31 03:48:49

A. gcc -c ch01.c -o main与gcc ch01.c -o main 有什么区别 为什么前者编译出来的执行文件不能运行

加-c是编译不链接,生成的是目标文件,-o和-c一起用就是把这目标文件改名输出成main而已。
单加-o就是编译且链接输出成执行文件。

B. gcc -o main main.cpp 和 gcc main.cpp -o main 有什么区别啊

依赖于g++对命令行参数的解析方式。-o main是选项,第1种是标准用法,与ls -l <file> 和 ls <file> -l是一样的意思。

这没有语法角度,-o main main.cpp或者 main.cpp -o main都是参数,直接影响g++程序中argc和argv参数。比如g++ -o main main.cpp,最终传到g++的main函数中 main(int argc, char **argv)的参数是:argc:4, argv: {"g++", "-o", "main" "main.cpp"},argv是一个字符串数组,第个元素表示一个命令行参数,argc表示命令行参数的个数。g++去解析这些命令行参数,如果想一探究竟,直接查阅源码就OK。
不建议使用后一种。使用man g++可以查看标准使用方式。

C. gcc怎么编译.o

gcc中-c和-o是编译时可选的参数
-加-c, (compile)只编译生成中间同名目标文件,不链接
-加-o,(output)指定输出文件名,该文件为可执行文件,不加-o会默认生成a.out
举例:
gcc -c hello.c 编译生成hello.o文件
gcc -o hello hello.c 生成可执行文件hello

D. (linux)gcc进行优化编译的参数是什么

将file.c文件编译产生可执行文件myprog(-o选项),并且在编译的时候,生成调试信息(-g信息)。让gdb调试器可以调试该程序。
gcc是编译器程序名字
-o是可执行文件名字输出参数
-g是插入调试信息参数
当然是调试可执行文件myprog

E. gcc. g++ 编译后生成的.O文件有何不同

从总体来看,没什么不同,都是
文件头、段表、段内容这样的一个格式。

往内容来看,两者有区别的,g++是把文件当C++,gcc是把文件当作C。首先是符号生成规则(name mangling)不一样,还有就是连接的库也不一样。

F. gcc -o是什么意思

gcc在windows下有很出名的,从Linux下转过来的(gcc原来是linux下的) 叫MinGW
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
一般语法:
gcc filename.c -o filename
上面的意思是如果你不打 -o filename 那么默认就是输出filemame.out.这个-o就是用来控制输出文件的。

G. linux 怎么编译c的源程序的gcc,编译命令是什么

在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器。

先将源文件编译成目标文件:gcc - c hello.c

生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(7)gcc命令编译加o参数的区别扩展阅读:

在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。

GCC最基本的用法是∶gcc [options] [filenames]

其中options就是编译器所需要的参数,filenames给出相关的文件名称。

网络_gcc

H. linux下用gcc编译出的可执行文件和.o的编译文件有什么区别

.o 是可重定位目标程序, 虽然打包了机器语言指令,但它还需要和其它的库(比如你用的printf())做链接,最终生成可执行目标文件,这样才可能被加载到内存中由系统执行.
你的程序里用到printf(),但你自己并没有实现它,实现在系统的库文件中,因此可链接后才能用嘛.

I. gcc命令求详解!!!!

1. 把 foo.c 编译为目标文件 foo.o
2. 把 main.c 编译为目标文件 main.o
3. 把 目标文件main.o和 foo.o 编译为可执行文件 simple

make 会 分析 makefile
发现 第一个文件依赖关系all:main.o foo.o
是 gcc -o simple main.o foo.o
即 simplie是由 main.o foo.o连接在一起得到的
接着他会往下找 main.o 和foo.o 各自的依赖关系
发现
main.o:main.c
gcc -c main.c -o main.o
即main.o是 由 main.c 编译而来的
接着又发现
foo.o:foo.c
gcc -c foo.c -ofoo.o:foo.c
gcc -c foo.c -o foo.o
即foo.o 是 由foo.c 编译而来的
所以
编译顺序 如开头所说的那样

阅读全文

与gcc命令编译加o参数的区别相关的资料

热点内容
程序员多久能提升 浏览:145
bpmx3源码 浏览:121
通信类单片机 浏览:815
加密植发的区别 浏览:538
程序员跑需求 浏览:224
s7服务器怎么设置 浏览:343
2k17连接不上服务器怎么办 浏览:493
人力资源系统开源源码 浏览:687
河北视频加密有哪些 浏览:651
桌面两个微信怎么都加密码 浏览:278
长沙单身程序员 浏览:886
服务器下载异常是因为什么 浏览:705
java防刷 浏览:844
3dmax取消当前命令 浏览:361
显示当前模式下所有可执行的命令 浏览:760
为什么程序员拿了股份还要高薪 浏览:949
电脑运行命令里的记录能删吗 浏览:699
linuxwss 浏览:850
一个软件需要登录服务器地址 浏览:925
哪里有解压程序 浏览:301