mingw编译器详解与使用教程
Mingw编译器是跨平台的C/C++开发环境,特别适合Windows系统上进行程序开发。它结合了GNU Compiler Collection (GCC) 和 MinGW工具链,为Windows用户提供了一个与Linux环境类似的开发环境,支持C、C++等编程语言,以及Win32 API和mingw运行时库。 Mingw的主要特点包括: 1. **动态链接库 (DLL)**: mingw提供了gcc和g++命令行工具,用于编译和链接动态链接库。例如,`gcc -shared -o test.dll test.c` 命令用于将test.c源代码编译成动态库,这在创建可插拔模块或共享库时非常有用。 2. **编译选项**: - `-o`: 指定生成的目标文件名,如 `gcc test.c -o test`。 - `-E`: 只进行预处理阶段,生成预处理语句的输出(`.i` 文件)。 - `-S`: 进行编译阶段,生成汇编代码(`.s` 文件)。 - `-c`: 只编译源文件,不链接,生成对象文件(`.o`)。 - `-O` 和 `-O1`: 编译优化级别,`-O1` 是较低的优化设置,更高级别可以提高代码效率但可能牺牲可读性。 3. **目录结构**: 在使用mingw时,确保源文件和目标文件正确放置,通常会有一个`./a.out`目录来存放编译后的可执行文件,或者根据`-o`选项指定的文件名创建相应的目录。 4. **依赖管理**: 对于大型项目,可能需要使用make或automake进行构建自动化,确保所有依赖文件正确链接。 5. **调试支持**: mingw与gdb集成良好,可以通过gdb进行程序调试。在Windows上,gdb通常通过mingw的二进制文件运行。 6. **兼容性和差异**: mingw虽然提供了类似Linux的开发环境,但与Visual C++ (VC) 或Turbo C++等其他Windows开发工具存在一些兼容性问题。比如,它们之间可能对某些C++标准支持不同,因此在迁移项目时需要注意这些差异。 7. **命令行工具集成**: mingw的编译器可以方便地与IDE(如Eclipse)集成,通过构建系统调用gcc进行编译。在命令行环境下,开发者可以直接操控编译过程,灵活性高。 8. **编译器配置**: mingw使用的是GCC的命令行接口,编译器配置可以通过命令行参数进行,但也可以在系统层面调整mingw的安装路径和环境变量,以适应不同的需求。 Mingw编译器是Windows平台上开发C/C++程序的重要工具,它提供了一套完整的编译链,使得开发者能够在一个熟悉的环境中编写跨平台代码,并利用mingw的优势进行高效、灵活的开发工作。
1.生成dll
gcc(g++) -shared -o test.dll test.c
一直用VS,看现在Eclipse很火,便想弄一下玩玩,用到了MINGW,继而用到了GCC,对GCC相当的不熟悉,从头开始学一些简单的吧。
简单的GCC用法~
gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。
一. 常用编译命令选项
假设源程序文件名为test.c。
1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。编译成功后可以看到生成了一个a.out的文件。在命令行输入./a.out 执行程序。./表示在当前目录,a.out为可执行程序文件名。
2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。输入./test执行程序。
3. 选项 -E <大写,注意>
or
作用:将test.c预处理输出test.i文件。
4. 选项 -S <大写,注意>
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。
5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。
6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。输入./test执行程序。
7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。输入./test执行程序。
二. 多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
剩余9页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ASP.NET数据库高级操作:SQLHelper与数据源控件
- Windows98/2000驱动程序开发指南
- FreeMarker入门到精通教程
- 1800mm冷轧机板形控制性能仿真分析
- 经验模式分解:非平稳信号处理的新突破
- Spring框架3.0官方参考文档:依赖注入与核心模块解析
- 电阻器与电位器详解:类型、命名与应用
- Office技巧大揭秘:Word、Excel、PPT高效操作
- TCS3200D: 可编程色彩光频转换器解析
- 基于TCS230的精准便携式调色仪系统设计详解
- WiMAX与LTE:谁将引领移动宽带互联网?
- SAS-2.1规范草案:串行连接SCSI技术标准
- C#编程学习:手机电子书TXT版
- SQL全效操作指南:数据、控制与程序化
- 单片机复位电路设计与电源干扰处理
- CS5460A单相功率电能芯片:原理、应用与精度分析