首页 > 编程知识 正文

cygwin mingw 哪个好,mingw环境变量

时间:2023-05-06 03:44:21 阅读:157139 作者:1517

转自: http://www.Cr 173.com/soft/132367.html

MinGW64位版本,缺省编译为64位。 需要编译32位。 请使用-m32参数。mingw是gnu工具集合,是windows的minimalist GNU的简称。 这是一个使用特定于Windows的头文件和GNU工具集合(可以自由使用和自由分发)导入库的集合。 可以在GNU/Linux和Windows平台上生成本地Windows程序,而不需要第三方c运行库。 MinGW是一组包含文件和端口的库,它提供了允许控制台模式程序使用标准的Microsoft运行时库(MSVCRT.DLL )的功能

GCC命令行参数复习GCC命令行参数,看看每个版本的差异——

32位版本: -将m32参数相加,生成32位代码。

64位版本: -将m64参数相加,生成64位代码。

调试版:将-g参数相加以生成调试信息。

发行版:添加"-static "参数进行静态链接,以便程序不依赖于动态库。 添加-O3参数,进行最快优化。 添加-DNDEBUG参数,定义NDEBUG宏并阻止断言。

如果没有-m32或-m64参数,通常会生成与操作系统位数匹配的代码,但有些编译器可能会有例外,如——

在32位Linux上,GCC缺省编译为32位代码。

在64位Linux上,GCC缺省编译为64位代码。

Window系统上的MinGW始终编译为32位代码。 因为MinGW只支持32位代码。

Window系统上的MinGW-w64 (例如,如果安装了TDM-GCC,请选择MinGW-w64 )默认为64位代码,其中包含32位Windows系统上的编译

MinGW分为以前开发的MinGW32和后来为编译64位程序而开发的MinGW-w64。 MinGW32只能编译32位程序,而mingw64不仅可以编译64位程序,还可以编译32位程序,并且可以进行交叉编译。 这意味着您可以在32位主机上编译64位程序,在64位主机上编译32位程序。

构建mingw64环境1 .首先下载mingw64,

下载后直接双击安装。 我直接安装在CD上。 目录如下。

2 .下载msys.http://www.mingw.org/wiki/msys /。 我下载的是1.0.11版的。 直接点击安装。 我安装在光驱里。 安装过程中有一些提示。 是就可以了。 最后,需要放置mingw环境变量。 我配置的是上图的地址c :/mingw-w64/x86 _ 64-4.9.2-POSIX-seh-rt _ v3。请不要在意他。 暴力后,直接前往C:msys1.0etc目录,将fstab.sample复制为fstab,然后编辑,如下图所示。

然后,编辑C:msys1.0msys.bat文件,以call'd:programfiles(x86 ) Microsoftvisualstudio10.0(VC ) dq开头

下载x264 ffmpeg

下载完成后,将所有内容复制到C:msys1.0home。

从cd到x264目录,用公司电脑编译,简直顺畅,没有任何错误。 步骤如下。

1 ./configure---prefix=/mingw---enable-- win32 thread-- host=x86 _ 64-w64-mingw 32-- enable-sthread

美妆

您可以看到make install以及mingw64下有x264的. h和lib文件。

编译ffmpeg

我使用的命令如下

./configure --prefix=/mingw---enable-GPL---enable-nonfree---enable-postproc-- enable-av filter-- enable-ffplable BZ Li B--- enable-lib x264---enable-zlib-- disable-debug-enable-shable-I/mingw/include---extra 配置后,一定会报告警告。 没有pkg-config,需要下载glib_2.18.4-1_win32.zip和pkg-config_0.23-3_win32.zip。 下载结束后请将pkg-config_0.23-3_win32.zip

0/dqdhb目下,然后会少个dll,在把dll拷贝进去。在执行上面的命令之后,这个警告就不会出现了。

接着

make

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

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

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

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

 

安装步骤

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

1.解压mingw-w64-dqdhb_x86_64-mingw_20110510_sezero.zip文件到某个目录d:thsoftmingw64

测试安装是否成功

打开cmd,进入d:thsoftmingw64dqdhb目录,输入一下命令gcc -v

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

更进一步

1.若在msys(MSYS安装方法)中使用,继续一下步骤
1)打开msys安装目录下的etc/fstab,如果没有该文件,则复制fstab.sample文件,并重名为fstab
2)修改fstab文件

c:/mingw        /mingw
修改为自己的mingw安装目录
D:/thsoft/mingw64        /mingw
3)测试是否安装成功,
启动msys终端,输入gcc -v

2.若要在eclipse cdt(eclipse cdt安装方法)中使用,执行如下操作
1)配置Path环境变量
我的电脑–右键–属性–高级–环境变量–系统变量中的path–双击
在path的最前面添加:
D:thsoftmingw64dqdhb;
2)测试是否安装成功
打开eclipse cdt,新建一个hellowold项目,编译连接(eclipse cdt使用Mingw编译项目,该文章是mingw32的使用方法,mingw64也同样适用),看是否能编译运行。

  其他说明

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

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

x86_64-w64-mingw32-g   -v

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

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

我的电脑–右键–属性–高级–环境变量–系统变量中的path–双击
在path的最前面添加:
D:thsoftmingw64x86_64-w64-mingw32dqdhb

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是更好的选择

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。