MinGW-w64在windows/ubuntu上的安装及使用

简介: MinGW-w64在windows/ubuntu上的安装及使用

Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。也就是说,MinGW 就是 GCC 的 Windows 版本 。这里介绍其两种用法。

在ubuntu18.04上编译出exe文件

ubuntu上安装MinGW64

命令行安装

sudo apt-get update
sudo apt-get install mingw-w64

执行完成后在/usr/bin/下可以找到两个g++

i686-w64-mingw32-g++      //编译器将在64位系统上构建32位应用程序
x86_64-w64-mingw32-g++    //编译器将在64位系统上构建64位应用程序
静态链接库文件

选用编译器编译某个cpp文件,并采用静态链接。如果采用动态链接,则会报找不到libstdc++.dll的错误。

i686-w64-mingw32-g++ test.cpp -o test.exe -static -lstdc++
//x86-64-w64-mingw32-g++ test.cpp -o test.exe -static -lstdc++

可以查看test.exe的文件属性

$ file test.exe
test.exe: PE32 executable (console) Intel 80386, for MS Windows
//test.exe: PE32+ executable (console) x86-64, for MS Windows

编译出的文件拷贝至windows平台,执行可得到预期结果。

在windows10上使用g++

可以先进入MinGW的官网界面,点击进入Downloads页面

找到Mingw-builds,进入真正的下载界面,点击下载。

双击下载完成的文件。

根据提示点击下一步。

点击下一步。

之前下载的只是一个下载器,安装过程需要联网。

架构可以选择i686,也可以选择x86_64,这里选择编译为64位机器跑的程序。

联网下载文件,几分钟,耐心等待。

安装完成。

打开终端进入到安装目录的bin文件内,或者将该目录添加到系统的Path变量。一旦添加完成,便可在任意位置调用g++。

用这个版本的g++编译下之前大小端的程序,执行。

可得到期望结果。

总结

预测应该前一种使用方式会更多一点,即在linux下编译出windows上执行的二进制文件。像tensorflow serving这种工程,目前官方仅提供linux下使用的二进制/源码编译版本,如果要在windows上编译,则需要配置环境-修改源码/脚本等繁琐步骤。如果有这个工具,则直接在linux下换一个编译链接工具,则效率更高。

相关文章
|
20天前
|
Ubuntu NoSQL 关系型数据库
Ubuntu系统下安装常用软件
Ubuntu系统下安装常用软件
41 0
Ubuntu系统下安装常用软件
|
24天前
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
33 4
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
55 0
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
47 0
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
79 0
如何在 VM 虚拟机中安装 Windows 7 操作系统保姆级教程(附链接)
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows XP 操作系统保姆级教程(附链接)
108 0
|
1月前
|
Ubuntu Linux C语言
Ubuntu下安装vscode,并解决终端打不开vscode的问题
Ubuntu下安装vscode,并解决终端打不开vscode的问题
130 0
|
1月前
|
Ubuntu 关系型数据库 MySQL
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
27 2
|
15天前
|
安全 Windows
安装MyEclipse遇到错误提示 Failed to find a Main Class in “C:Windows\Temp\“时的解决方案
安装MyEclipse遇到错误提示 Failed to find a Main Class in “C:Windows\Temp\“时的解决方案
22 1
|
22天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
66 0