dev c++编译时会自动给gcc加上—o参数吗?

吴海燕

gcc编译时把-o放在-g前面为什么会报错

dev c++编译时会自动给gcc加上—o参数吗?

这是因为-g是选项,后面不需要给参数,而-o是参数,后面需要加上输出文件名称,所以,gcc test.c -o -g test,会生成一个-g的输出文件,而后面的test就成非法参数了.

linux 中,gcc -c 产生目标代码,-o连接文件.其实很多时候直接-o就.

-o 表示产生目标文件.-c 表示只编译代码但不进行链接,加改参数生成的目标文件是不能执行的(我们常用的链接库就是这样得来的).通常在只有一个源文件的情况下不需要加-c.但实际上大多数情况下C程序远不止1个源文件,当main函数需要调用不在同一源文件下的函数时就需要链接到包含该函数的目标文件.举个例子:/*main.c*/#include int main(){ test(); }/*test.c*/#include extern void test(){ } 编译步骤: gcc -c test.c -o test gcc test main.c -o main

GCC编译器加上优化选项会不会自动去掉没用到的函数??

实际上在编译之后还要链接,才能生成最终的目标代码.在链接的过程中,只有用到的函数才会被链接进目标代码.也就是说,没有用到的函数不会被链接到目标代码,也不会增大目标代码的体积.

dev到gcc下为什么会编译错误

Dev-C++是windows上的一个IDE,gcc是DevC++默认使用的编译器也就是说,gcc是内核,DevC++是外壳.C/C++语言没有规定具体压栈顺序,没有标准化时C语言支持没有固定参数的函数,所以为了实现这个当时多数编译器都采用从右往左压栈,但是标准化的要求至少有一个固定参数,这个限制就没有必要了.不过从右到左几乎已经成为了C编译器惯用的顺序.C++的_stdcall方式也是采用从右到左,不同的只是不需要调用者自己手动清栈.另外求值顺序和压栈顺序是两回事,C语言里几乎没有对求值顺序做规定,编译器完全可以先求出值再决定如何压栈.所以是编译器的压栈问题

linux命令选项和参数的顺序是怎么规定的 如gcc -o hello.c hello 和 gcc .

1、如果只做编译,不做链接(-c 选项,只生成.o文件,不生成执行文件),对参数顺序没有要求. 2、不同类的选项没有顺序要求(如多个 -I 属于同一类). 3、gcc在链接时,对参数中的库的顺序有要求,参数右侧的库会先于左侧的库加载;不同库中有相同的符号定义时,链接顺序不同会产生不同结果.

linux下c编程,为什么有些程序用g++就可以编译,而用gcc时必须加上-.

编译可以用gcc/g++,但链接用g++或者gcc -lstdc++.因为gcc命令不能自动和c++程序使用的库联接,所以通常使用g++来完成联接.但在编译阶段,g++会自动调用gcc,二者等价

linux中进行程序编译时 gcc -g file.c -o myprog 是什么意思,能 产生什.

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

Dev C++调试时如何输入参数?

在“工具”-》编译选项-》"Add following commands when calling complier"下面的编辑框里加上: -g3然后在下面的"Add these commands to the linker command line" 下的编辑框上加上: -g3转到programs页,把gcc行修改为:gcc.exe -D__DEBUG__,把g++行修改为: g++.exe -D__DEBUG__ ,点击ok.重新编译,就能调试了.

在编译的时候出现这个问题?在网上找了要在gcc后面加上-m32但还是.

加-m32后要保证所有的引用都必须是32位的,并且所有编译过的程序需要清空并重新编译.

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

-c和-o都是gcc编译器的可选参数.-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件.-o用于指定输出(out)文件名.不用.