MinGw编译器使用

mingw 分 mingw64 和 mingw32
  注意下载mingw64 不管是编译64位还是32位程序

关于mingw64下载

MinGw64 :下载posix版,win32版本使用不了 STL标准库的thread/mutex/condition_variable,只能使用win32的线程库

注意 msvcrt和ucrt区别,一般下载msvcrt版本

编译64 位程序下载名字中带有seh的版本
若有编译 32 位程序的需求 下载 名字中带有sjlj版本 sjlj版本官网只更新到 12.1.0
下载32位版本还需要下载32位版本的gdb用于调试程序

所以一般下载的安装包名字大概是以下这样:

x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z 

mingw64下载地址:
mingw64github
mingw64官网
gdb官网

编译32 位程序注意事项 :

  • 需要用到mingw64/x86_64-w64-mingw32/lib32目录下的32位动态链接库
    编译好的程序通过dependence类的软件查看动态链接库依赖关系后将相应动态库放到程序同一目录下
  • 若需要调试需要去gdb官网下载32位gdb放到mingw64/bin目录下,可以替换原来的64位gdb或者在vscode的launch.json的"miDebuggerPath’字段为32位gdb路径

关于编译时注意事项

  • 编译好的程序无法打开多半是缺少动态链接库,去mingw64/bin/下寻找缺少的动态库
  • 链接时不要包含系统库路径,如c:/System32/winmm.dll ,mingw64编译时链接的是自己的libwinmm.a 库 包含了系统库路径是不行的
  • 若要编译动态链接库需要在gcc 编译选项中加上 “ -Wl,–kill-at ” 去掉导出函数名字末尾的@nn

摆脱libwinpthread、libgcc_s_seh、libstdc++依赖

  • 若不想编译好的库带上 mingw的动态库 就需要静态链接他们

以下提供几种方法

 cmake中 ,亲测可行:
target_link_libraries (your_library -static gcc stdc++ winpthread -dynamic) 
gcc命令中加上(网上方法,对我的程序不起作用):
-static-libstdc++ -static-libgcc -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive -Wl,-Bdynamic 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 王道使用编译器Mingw编译器,具体来说是Mingw.zip版本Mingw是一套用于Windows操作系统的开源编译器工具集,它的全称是Minimalist GNU for Windows。Mingw将GNU编译器集合中的一些组件进行了精简和修改,使其能够在Windows环境下运行。Mingw.zip是Mingw的一个发行版本,提供了一个可执行的安装程序,方便快速安装和配置。 使用Mingw编译器的好处是它能够将源代码编译为可执行的Windows应用程序,同时兼容GNU工具链,可以方便地使用GCC进行代码编写和调试。Mingw的优点之一是它体积小巧,启动速度快,同时不依赖于任何第三方动态链接库,这使得生成的可执行文件更加独立和便携。 另外,Mingw编译器支持多种编程语言,包括C、C++和Objective-C等,可以满足不同编程需求。它还提供了丰富的开发工具和库,如GDB调试器和W32API,使开发者能够更加方便地进行Windows应用程序开发。 总的来说,王道使用Mingw编译器是一款强大而且方便的开源编译器工具集,能够帮助开发者在Windows环境下快速、高效地开发和调试应用程序。 ### 回答2: 王道使用的是Mingw编译器mingw.zip)。Mingw是一款免费、开源的软件开发工具链,它提供了一组GCC(GNU Compiler Collection)工具,可以在Windows操作系统上进行C和C++程序的编译和构建。Mingw的全称是“Minimalist GNU for Windows”,它的目标是提供一个轻量级的、与GNU工具链兼容的开发环境。 Mingw编译器是基于GCC的,它可以生成在Windows平台上运行的本地代码。相比于其他的编译器Mingw具有许多优势。首先,它提供了较高水平的兼容性,可以编译和运行许多不同类型的程序。其次,Mingw的编译速度相对较快,可以加快开发过程并提高效率。此外,Mingw还支持多种标准库和第三方库,方便开发者进行程序设计和开发。 对于王道来说,选择Mingw作为编译器的一个主要原因可能是因为它的易用性和稳定性。Mingw提供了简单易懂的安装程序,并提供了一些常用的辅助工具和插件,方便使用者进行项目管理和调试。此外,由于Mingw是开源工具,使用者可以根据自己的需求进行定制和扩展。 总而言之,Mingw编译器是王道选择的一款方便、稳定而且免费的软件开发工具,它在Windows平台上编译和构建C和C++程序时表现出色,为开发者提供了高效率和便利的开发环境。 ### 回答3: 王道所使用编译器mingw编译器mingw是一款自由软件,用于在Windows操作系统上编译各种程序。mingw是Minimalist GNU for Windows的缩写,它是一个基于GNU工具集的开源软件开发环境。mingw编译器使用了GNU C语言前端(GCC),因此具有强大的编译能力。 mingw编译器的功能非常强大,它可以编译各种类型的程序,包括C、C++和Objective-C等。这使得它成为许多开发者的首选工具之一。与其他编译器相比,mingw编译器在编译速度上表现优秀,并且生成的可执行文件大小较小。 王道选择使用mingw编译器的原因可能是多方面的。首先,mingw编译器是免费的,这对于学生或者在预算有限的情况下是非常有吸引力的。其次,mingw编译器易于安装和配置,并且拥有良好的用户文档和社区支持,初学者或者有限的编程经验的人也可以快速上手。 最后,mingw编译器支持多种开发环境,如Code::Blocks、Dev-C++等,并且可以与其他开发工具(如调试器)配合使用。这使得王道可以根据自己的喜好和需求,在不同的开发环境中使用mingw编译器进行程序开发。 总而言之,王道选择使用mingw编译器来进行程序开发,有利于提升编译速度、减小可执行文件大小,并且适用于各种开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值