gcc main.c -o main.o 请问,在C里面,这里面的-o是什么意思?
作者&投稿:郎鲍 (若有异议请与网页底部的电邮联系)
gcc是GNU提供的c语言编译命令。
-g表示在编译的时候输出调试信息
-o表示编译后的二进制文件
所以上述命令将main.c编译成名为test的二进制文件,并输出调试信息(用于报错)
然后编译没有错误./test就可以执行了。
依赖于g++对命令行参数的解析方式。-o main是选项,第1种是标准用法,与ls -l 和 ls -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++可以查看标准使用方式。
例如:
gcc -o main.c main
就会将main.c编译并生产main应用程序
沈败恩通: 我们再使用gcc编译的时候可以让他的输出信息保存到文件当中 gcc main.c -o main &>status.txt上面的命令就是将gcc编译的信息保存到status.txt文件中,然后我们再程序中读取文件,看文件是否有内容,没有内容就说明没有报错和警告,编译成功.有内容就对每一行内容进行判断,看是warring还是error,只有warring也代表编译成功,有error代表编译失败,然后把这些报错信息都打印出来就好了.下面看一下例子:
福鼎市17564825693: linux下C语言编写程序,能够打印出自己学号?? - ?
沈败恩通: //main.c #include int main(int argc, char *argv[]) { printf("你的学号"); return 0; } 用gcc编译一下 gcc main.c -o main 就可以了 另外有要求,请补充问题.
福鼎市17564825693: 想用cygwin编译.c源文件生成可执行文件 - ?
沈败恩通: gcc -o xxx source.c-o 后面指定编译出来的程序的名字*.c 就是要编译的源文件 这个命令是把当前目录下的source.c源文件编译成名为xxx的程序 原则上放在哪个目录下都行,但你要先到有源文件的目录下再执行编译命令.
福鼎市17564825693: gcc gcc- o main.c - ltest - L.?
沈败恩通: -o指定输出程序的名字,-o main.c表示输出程序叫main.c,把原来的文件替换掉了. 正确用法: gcc main.c -o main -ltest -L.
福鼎市17564825693: linux中如何用gcc编译用vi写的c文件 - ?
沈败恩通: 方法/步骤 1、进入linux系统,创建C文件“vim test.c”同时进入vim编辑界面也可以利用指令“touch test.c”创建后,然后“vim test.c”进入vim编辑界面. 2、vim编辑界面,由“ESC”建来切换三种模式,一般模式:在Linux终端中输入“vim...
福鼎市17564825693: 如何在Linux下用gcc编译c程序 - ?
沈败恩通: 初学者在编译的时候最好一步一步来,以hello.c为例:先将源文件编译成目标文件:gcc - c hello.c 上一步生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o
福鼎市17564825693: 我想用gcc编译一个汇编程序,就是把c语言转成汇编. - ?
沈败恩通: 假设你的函数保存在main.c中.gcc -S main.c -o main.s -S表示assembly 汇编的意思,也就是生成汇编文件
福鼎市17564825693: gcc编译时是否将*.c文件一起编译进去了 - ?
沈败恩通: 1 单个文件可以编译链接一起做: 例如: gcc main.c -o hello;2 如果是多个文件,编译链接过程一定是分开的.以你的例子来说: a 编译: gcc -c hello.c //生成hello.o gcc -c main.c //生成main.o b 链接: gcc hello.o main.o -o hello 当然,其他编译和链接选项都是缺省,没有复杂变化.3 如果文件很多,为修改简便,就可以写makefile来简化编译链接过程.那是另外一个主题了.
福鼎市17564825693: gcc 编译多文件 顺序 - ?
沈败恩通: 问题1:gcc a.c main.c -o a.out 问题2:可要可不要,视具体情形而定 问题3:没有必要
福鼎市17564825693: linux中如何用gcc编译用vi写的c文件?
沈败恩通: 有两种方法 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