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下换一个编译链接工具,则效率更高。

相关文章
|
29天前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
2670 3
|
1天前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
70 50
|
23天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
84 4
Linux系统之Ubuntu安装cockpit管理工具
|
28天前
|
监控 Ubuntu Linux
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
这篇文章介绍了如何在Ubuntu和Windows系统中通过设置相同的时区并使用ntp服务来解决时间同步问题。
58 4
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
|
28天前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
118 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
28天前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
73 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
25天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
86 1
|
25天前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
25天前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003
|
26天前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
37 0
Windows 平台安装 MongoDB
下一篇
无影云桌面