Windows版GCC之TDM-GCC 4.5.2

平时写 C/C++ 小程序的时候,不喜欢开VS,太庞大了,还要建项目。对于小程序,一个可以进行单文件编译的 IDE 是我的首选,我用的是 C-Free 5.0,内置编译器 MinGW,Windows 版 GCC。

前几在 C-Free 5.0 上写排序程序,想看一下大概的执行时间,于是用 C 标准库函数 clock() ,结果包含的 time.h 头文件一直不能通过编译。把源代码复制到 VS 2008 里居然顺利编译通过,猜想这应该是编译器 MinGW 的问题,忍忍吧。

前天把系统搞得一踏糟,无奈之下还原,今天找了个最新版的 MinGW 编译器,没想到 time.h 头文件的问题没了,爽。

其实我用的不是 MinGW 官方版,而是另一个发行版本 TDM-GCC,目前最新版 4.5.2,一下翻译一段介绍:

TDM-GCC是一个 Windows 版的编译器套件。
它结合了 GCC 工具集中最新的稳定发行版本,包括了自由并开源的 MinGW 或 MinGW-w64 的运行时 APIs,以此创建一个 LIBRE 来替代微软的编译器及其平台 SDK。
它可以创建自 Windows 95 以来任何 Windows 操作系统版本之上的 32 位或 64 位的二进制文件。

提供一个下载地址:http://tdm-gcc.tdragon.net/

另外在某博客上有下面一段话:

TDM (Twilight Dragon Media) 和 MinGW官方没有任何瓜葛。TDM中包的版本一般比MinGW官方版新,似乎有MinGW的成员也在用TDM版。力挺这个的人似乎也挺多。

TDM GCC 分两个版本(异常处理方式不同)

SJLJ (setjmp/longjmp) 
DW2 (Dwarf-2) 
MinGW 中采用的是后者,TDM GCC 建议首选前者。

http://www.cnblogs.com/wxxweb/archive/2011/05/30/2063434.html

-----------------------------------------------------------------------------------------------------------------

自我说明:

TDM-GCC is pleased to present new toolchains based on GCC 5.1.0, as well as updated GDB packages for 32-bit and 64-bit native Windows.

This TDM-GCC release incorporates a few more local patches from the MinGW-w64 project's MinGW-Builds releases. Also, a 32-bit GDB is now available, and both 32-bit and 64-bit GDB automatically load GCC's libstdc++ "pretty printers", if available, to provide more readable debugging output for libstdc++ objects. See the README files included in the core and gdb packages for details on all local patches.

Please make sure to read the Quirks page for more information about the differences between TDM-GCC and other GCC toolchains.

http://tdm-gcc.tdragon.net/quirks

-----------------------------------------------------------------------------------------------------------------

主要区别:

Static runtime linkage (libgcc & friends)
  • TDM-GCC doesn't link your programs with the libgcc or libstdc++ runtime DLLs by default.
  • Other toolchains default to DLL runtime linkage in order to allow you to throw exceptions among DLLs and EXEs.
  • TDM-GCC lets you throw exceptions among DLLs and EXEs even with the static runtime.
  • Your programs will not rely on any additional DLLs when compiling with default options.
  • TDM-GCC still includes DLL versions of the libgcc and libstdc++ runtimes, which you can enable for your program with "-shared-libgcc" and "-shared-libstdc++" if desired.

http://tdm-gcc.tdragon.net/quirks

TDM-GCC是从mingw-w64项目patch而来,全部使用静态链接,对线程不需要额外的DLL,默认使用SJLJ异常(真是好东西)的更多相关文章

  1. nginx反向代理部署springboot项目报404无法加载静态资源

    问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...) springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问s ...

  2. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good

    原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-r ...

  3. mingw w64的下载地址

    mingw w64的下载地址,官网下载看得太晕.直接记下下载链接. https://sourceforge.net/projects/mingw-w64/ i686纯32位版供32位win系统使用.x ...

  4. GCC编译过程与动态链接库和静态链接库

    1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...

  5. 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析OpenHarmony源码 | v54.01

    百篇博客系列篇.本篇为: v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 51.c.h.o 下图是一个可执行文件编译,链接的过程. 本篇将通过一个完整的小工程来阐述E ...

  6. 利用GCC编译器生成动态链接库和静态链接库

    转载请标明:http://www.cnblogs.com/winifred-tang94/ 1.编译过程 gcc –fPIC –c xxx.c 其中-fPIC是通知gcc编译器产生位置独立的目标代码. ...

  7. GCC 编译使用动态链接库和静态链接库

    1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...

  8. gcc总结【基本用法】【选项】【动静态库】(转)

    1.////////////////////////////////////////////////////////////////////////////////////////////////// ...

  9. GCC 编译使用动态链接库和静态链接库的方法

    1 库的分类 依据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的.所以生成的可执行文件就不受库的影响了.即使库被删除了,程序依旧能够成功执行. 有别于静态库,动态库的链接是在程 ...

随机推荐

  1. 【Codeforces Round #299 (Div. 2) E】Tavas and Pashmaks

    [链接] 我是链接,点我呀:) [题意] 游泳+跑步比赛. 先游泳,然后跑步. 最先到终点的人是winner. 但是现在游泳的距离和跑步的距离长度都不确定. S和R. 给你n个人,告诉你每个人游泳的速 ...

  2. 【2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B】

    [链接]h在这里写链接 [题意] 一个硬币正面朝上的概率为q/p; 抛k次,问你偶数次朝上的概率为多少. [题解] [错的次数] 0 [反思] 在这了写反思 [代码] #include <bit ...

  3. 短网址ShortUrl的算法

    场景: 我们在新浪微博上公布网址的时候.微博会自己主动判别网址.并将其转换.比如:http://t.cn/hrYnr0. 为什么要这样做的,原因我想有这样几点: 1.微博限制字数为140字一条,那么假 ...

  4. 使用wepy开发微信小程序商城第三篇:购物车(布局篇)

    使用wepy开发微信小程序商城 第三篇:购物车(布局篇) 前两篇如下: 使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 基于上两篇内容,开始 ...

  5. GCD下载后清除缓存

    //GCD下载后清除缓存1 —(void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; //清除缓存 [self.cache re ...

  6. C#实现自己主动升级(附源代码)

           对于PC桌面应用程序而言,自己主动升级功能往往是不可缺少的. 而自己主动升级能够作为一个独立的C/S系统来开发,这样,就能够在不同的桌面应用中进行复用.本文将着重介绍OAUS的相关背景. ...

  7. js模仿块级作用域(js没有块级作用域私有作用域)

    js模仿块级作用域(js没有块级作用域私有作用域) 一.总结 1.js没有块级作用域:在for循环中定义的i,出了for循环还是有这个i变量 2.js可以模拟块级作用域:用立即执行的匿名函数:(匿名函 ...

  8. 搭建MHA问题汇总

    1,Can't exec "mysqlbinlog": No such file or directory at /usr/share/perl5/vendor_perl/MHA/ ...

  9. MongoDB集群安装与配置2.4.3版本

    mongoDB安装http://www.mongodb.org/downloads拷文件到# cp mongodb-linux-i686-2.4.1.tgz /usr/local/进入目录:# cd ...

  10. CSS负margin的影响

    原文 简书原文:https://www.jianshu.com/p/87677fd2ea34 相关文章: CSS负边距margin的应用:https://www.cnblogs.com/shcrk/p ...