mingw64环境搭建

mingw64环境搭建2019 独角兽企业重金招聘 Python 工程师标准 gt gt gt

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

mingw64环境搭建

转自:http://www.cr173.com/soft/132367.html

 

MinGW64位版,默认编译出来是64位的,需要编译32位请使用-m32 参数!mingw是一款gnu工具集合是Minimalist GNU on Windows的简称,一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合!允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL)

GCC命令行参数

MinGW分为较早开发的MinGW32和之后为编译64位程序开发的MinGW-w64,MinGW32只能编译32位的程序,而mingw64不仅能编译64位程序,也能编译32位程序,还能进行交叉编译,即在32位主机上编译64位程序,在64位主机上编译32位程序。

mingw64环境搭建

1.首先下载mingw64,

下载下来后直接双击安装,我直接安装在C盘,目录如下:

mingw64环境搭建

2. 下载msys. http://www.mingw.org/wiki/MSYS/,我下载的是1.0.11版本的。直接点击安装,我安装在C盘,安装过程中会有一些提示,yes就行,最后需要配置一个mingw的环境变量,我配置的是上图中的地址C:/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev1/mingw64,(注意正反斜杠啊)可能他会提示错误,说找不到路径之类的,不要管他,暴力一点,直接到C:\msys\1.0\etc目录,复制fstab.sample为fstab,然后编辑如下图:

mingw64环境搭建

接着编辑C:\msys\1.0\msys.bat文件,在开头加上call “D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat”在这样环境变量就配置好了。

3.下载x264 ffmpeg

下载完之后全部拷贝到C:\msys\1.0\home。

cd到x264目录,在公司电脑上编译,简直是一路畅通,没有任何错误。步骤如下:

1. ./configure –prefix=/mingw –enable-win32thread –host=x86_64-w64-mingw32 –enable-static –enable-shared 

make

make install,然后你去你会发现mingw64下面会有x264的.h 以及lib文件。

2.编译ffmpeg

我用的命令如下

./configure –prefix=/mingw –enable-gpl –enable-nonfree –enable-postproc –enable-avfilter –enable-ffplay –enable-avresample –enable-w32threads –enable-runtime-cpudetect –enable-memalign-hack –enable-bzlib –enable-libx264 –enable-zlib –disable-debug –enable-shared –arch=x86_64 –host-os=win64 –extra-cflags=-I/mingw/include –extra-ldflags=-L/mingw/lib ,大家可以根据自己的需求增减选项。configure之后肯定会报一个警告,没有pkg-config这个玩意,需要下载glib_2.18.4-1_win32.zip和pkg-config_0.23-3_win32.zip,下载完之后只要把pkg-config.exe这个东西拷贝到msys/1.0/bin目下,然后会少个dll,在把dll拷贝进去。在执行上面的命令之后,这个警告就不会出现了。

接着

make

make install,ok安装完毕,你直接在msys里面执行cd /mingw/bin,里面你就可以看到很多dll,和ffserver.exe之类的,如果你需要编译出ffplay,那还要编译一个SDL1.2版本的。到此为止全部就搞定了,感觉又很简单,关键是msys的环境变量一定要配置好,否则出现各种蛋疼。

编译新版本的ffmpeg的时候会出现某某dll库找不到,缺什么下载什么,有64位版本就用64位版本,确保不出问题。这样下来应该就可以编译通过了。

查看编译后的版本是否是64位的,可以用

mingw64环境搭建

PS:我记得以前编译ffmpeg和x264的时候总是提示一些类型错误int8_t之类的,是因为inttype.h 还有stdint.h这两个头文件的问题,不过现在的版本编译的时候不会再出现这种低级错误了,如果你编译新版本的时候出现,或许是你环境没有配置好,你可以从mingw里面拷贝这两个文件,然后自己改,估计也够呛的。

 

安装步骤

以下以mingw-w64-bin_x86_64-mingw__sezero.zip包的安装为例,mingw-w64-bin_x86_64-mingw__sezero.zip包的安装方法相同。

1.解压mingw-w64-bin_x86_64-mingw__sezero.zip文件到某个目录d:\thsoft\mingw64

测试安装是否成功

打开cmd,进入d:\thsoft\mingw64\bin目录,输入一下命令gcc -v

将显示gcc的版本等信息,如果看到此信息,表示安装成功。

更进一步

 

其他说明

如果想再32位的环境下,使用mingw-w64-bin_i686-mingw__sezero.zip,编译64位的程序,以上基本相同,但需要做一下修改:

四、–>1–>3)需要改为如下:

x86_64-w64-mingw32-g   -v

这个是交叉编译的编译工具的命名比较奇特的地方,可能是若在相同的机器上安装多个mingw64,gcc出现同名的情况。

四、–>2–>2)需要改为如下:

MinGW与CygWin/gcc的区别

MinGW相比CygWin/gcc来讲,更加贴近win32。因为它几乎支持所有的Win32API。它所连接的程序,不需要任何第三方库即可运行。

CygWin/gcc,其实这是两个东西。CygWin是一个让Windows拥有Unix-like环境的软件。而gcc就是安装在CygWin上的编译器。

CygWin/gcc与MinGW的最大区别在于:使用CygWin/gcc可以在Windows下调用unix-like的API,(如fork,spawn,signals,select,sockets等)。也就是说Cygwin是运行在Windows下的,但是她使用的是Unix-like系统的函数和思想。由于这个区别,导致的结果就是用CygWin/gcc编译出来的程序可以无缝的运行在*nix环境下。但是如果调用了unix特有的API函数,在windows环境下不能正常运行,如果想在windows下正常运行的,就必须依赖cygwin1.dll,速度上会有些影响。

而用MinGW编译出来的程序,如果源代码里面调用了unix环境的API,则MinGW会把这些对UNIX的API调用翻译成win32下等价的形式。同时这个程序是不能在windows下运行的。

说白了,如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。

而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择

转载于:https://my.oschina.net/u//blog/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232326.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网页制作实验步骤_web简易开发

    网页制作实验步骤_web简易开发web实验2制作简单网页(HTML+CSS)一、实验目的1.掌握文本样式的设置。2.掌握图像样式的设置。3.掌握各种媒体的插入方法。二、实验内容采用DIV+CSS,制作“在线电影”页面。三、操作提示1.新建网站的文件夹,网站图像素材保存在images文件夹中,媒体文件放在flash文件中。2.新建index.html页面,要求: 页面字体大小为14px,文本颜色为#000; 页面背景颜色为#edb8d2; 上下左右距均为0。3.利用div布局,宽度为900px,居中对齐。

    2022年10月13日
    4
  • icem划分网格步骤_ICEM CFD教程-icem网格划分教程

    icem划分网格步骤_ICEM CFD教程-icem网格划分教程ICEMCFD教程四面体网格对于复杂外形,ICEMCFDTetra具有如下优点:根据用户事先规定一些关键的点和曲线基于8叉树算法的网格生成,生成速度快,大约为1500cells/second无需表面的三角形划分,直接生成体网格四面体网格能够合并到混合网格中,并实施平滑操作单独区域的粗化和细化ICEMCFD的CAD(CATIAV4,UG,ProE,IGES,andP…

    2022年5月9日
    47
  • Matlab中sqrt函数的用法「建议收藏」

    Matlab中sqrt函数的用法「建议收藏」目录语法说明示例向量元素的平方根输入参数详细信息IEEE合规性提示sqrt求解平方根语法B=sqrt(X)说明B=sqrt(X)返回数组X的每个元素的平方根。对于X的负元素或复数元素,sqrt(X)生成复数结果。sqrt函数的域包含负数和复数,如果使用不当,可能会导致意外结果。对于负的复数z=u+i*w,复数方根sqrt(z)返回sqrt(r)*(cos(phi/2)+1i*sin(phi/2))…

    2022年5月1日
    111
  • 投影矩阵推导_矩阵投影变换

    投影矩阵推导_矩阵投影变换概要投影变换是计算机图形学的基础,理解并推导投影矩阵也是很有必要的。正交投影比较简单,没有透视失真效果(近大远小)。而透视投影比较符合人类的眼睛感知,平行线在远处会相交于一点。投影是通过一个4×4的矩阵来完成的,将视锥映射成标准观察体(齐次裁剪空间)。正交投影OpenGLOpenGL采用的是右手坐标系,z轴朝屏幕向外,因此观察方向是朝着z轴负方向的,那么将x,y,z坐标从区间[l,r],

    2022年10月4日
    1
  • 路由器下一跳地址怎么判断_一篇文章,了解清楚路由器的各种组网「建议收藏」

    很多朋友问到,不同网段的两个电脑如何实现互访?这个通常在企业办公中会遇到,我们今天来看下。我们经常会遇到企业随着员工或部门的增多,增加了一个路由器,分了两个网段,A子网和B子网处于不同网段,当网络中存在多个路由器时,要求不同路由器下属的子网可以互相通讯,同时又可以通过宽带路由器上网,这如何实现?本期我们通过路由器的操作,来实现三种案例情况。案例情景1企业通过一台路由器R1上网,局域网LAN1,。因…

    2022年4月16日
    893
  • Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)「建议收藏」

    Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)「建议收藏」表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据。PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类,另一种是树形结构的控件类。

    2022年10月1日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号