博舍

gcc 编译C语言最全命令 gcc编译c文件生成exe

gcc 编译C语言最全命令

gcc编译命令

最简单的编译命令是:  gccmain.c默认生成的可执行文件是a.out

如果需要指定输出文件,则需要使用如下的命令:  gccmain.c–omain

使用-Wall选项可以输出所有的警告信息:  gcc-Wallmain.c-omain

输出C源码的预处理结果, 使用-E选项,默认是输出控制台,可以将其重定向到文件保存:   gcc-Emain.c>main.i

如果只想输出汇编代码而非二进制代码,使用-S:  gcc-S main.c

使用-C(大写)选项只生成C程序对应的目标文件,但是不进行链接:  gcc-Cmain.c

输出所有的中间文件, 使用-save-temps选项:  gcc-save-tempsmain.c

与共享库进行链接,应使用-l选项再加上库程序的名字,例如,程序引用了math库中的pow函数:  gcc-Wallmain.c-omain–lm

编译生成共享库时,为了保证所生成的库可以被加载到合法的任意地址,需要使用-fPIC选项,例如如下的命令生成一个名为test.so的共享库:  gcc-c-Wall-Werror-fPICtest.c  gcc-shared-otest.sotest.o

如果想查看编译器是怎么编译源程序的,以及每一步所使用的命令是什么,则应该使用-V选项:  gcc-Wall-vmain.c-omain

使用-ansi可以指定编译器编译源码时遵循的语言标准,例如如下代码按照ISOC89对源码进行编译:  gcc-Wall-ansimain.c-omain

有些时候警告中往往预示着一些潜在的错误,因此部分项目在编译时要求将警告当做错误看到,使用-Werror:  gcc-Wall-Werrormain.c-omain

经过优化的代码调试时可能会出现找不到声明的变量、控制流程发生变化、有些语句被直接跳过等现象。总而言之,不可能对编译之后的代码进行调试。为了让编译器生成额外的信息以利于程序的调试(例如使用gdb),使用  -g 。  gcc-Wall-Werror–gmain.c-omain

使用-O0选项可以禁用所有编译器优化,使用-O1、-O2和-O3逐步打开更多的优化选项。-Og则在保证调试工作的同时完成了少量的优化。

如果有一些宏需要在编译时代入, 使用-D选项,例如如下的代码

#includeintmain(void){#ifdefMY_MACROprintf(" Macrodefined ");#endifcharc=-10;//Printthestringprintf(" TheGeekStuff[%d] ",c);return0;}

使用如下的命令编译:  gcc-Wall-DMY_MACROmain.c-omain则会打印输出相应的语句。

 

gcc/g++编译 cpp/c文件 生成可执行文件

g++编辑cpp生成exe

编译重命名等:

g++–cHello.cc 编译文件,生成目标文件Hello.o

g++Hello.o–oabc 连接并重命名为可执行文件abc

g++Hello.cc   编译连接一起,生成a.out

g++Hello.cc–ohello生成a.out并命名为hello

多文件编译

$ g++ hellospeak.cppspeak.cpp -o hellospeak

g++命令:

下面以helloAtom.cpp为例:

[cpp] viewplain copy#include   using namespace std;  int main()  {    cout

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇