mingw64環境搭建

2021-09-07 02:34:50 字數 3808 閱讀 8685

**:

mingw64位版,預設編譯出來是64位的,需要編譯32位請使用-m32 引數!mingw是一款gnu工具集合是minimalist gnu on windows的簡稱,乙個可自由使用和自由發布的windows特定標頭檔案和使用gnu工具集導入庫的集合!允許你在gnu/linux和windows平台生成本地的windows程式而不需要第三方c執行時庫。mingw 是一組包含檔案和埠庫,其功能是允許控制台模式的程式使用微軟的標準c執行時間庫(msvcrt.dll)

複習一下gcc命令列引數,看看各個版本的區別——

32位版:加上 -m32 引數,生成32位的**。

64位版:加上 -m64 引數,生成64位的**。

debug版:加上 -g 引數,生成除錯資訊。

release版:加上 -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位程式。

接著編輯c:\msys\1.0\msys.bat檔案,在開頭加上call "d:\program files (x86)\microsoft visual studio 10.0\vc\bin\amd64\vcvars64.bat"在這樣環境變數就配置好了。

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

我用的命令如下

接著make

make install,ok安裝完畢,你直接在msys裡面執行cd /mingw/bin,裡面你就可以看到很多dll,和ffserver.exe之類的,如果你需要編譯出ffplay,那還要編譯乙個sdl1.2版本的。到此為止全部就搞定了,感覺又很簡單,關鍵是msys的環境變數一定要配置好,否則出現各種蛋疼。

檢視編譯後的版本是否是64位的,可以用

ps:我記得以前編譯ffmpeg和x264的時候總是提示一些型別錯誤int8_t之類的,是因為inttype.h 還有stdint.h這兩個標頭檔案的問題,不過現在的版本編譯的時候不會再出現這種低階錯誤了,如果你編譯新版本的時候出現,或許是你環境沒有配置好,你可以從mingw裡面拷貝這兩個檔案,然後自己改,估計也夠嗆的。

以下以mingw-w64-bin_x86_64-mingw_20110510_sezero.zip包的安裝為例,mingw-w64-bin_x86_64-mingw_20110510_sezero.zip包的安裝方法相同。

1.解壓mingw-w64-bin_x86_64-mingw_20110510_sezero.zip檔案到某個目錄d:\thsoft\mingw64

測試安裝是否成功

開啟cmd,進入d:\thsoft\mingw64\bin目錄,輸入一下命令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:\thsoft\mingw64\bin;

2)測試是否安裝成功

開啟eclipse cdt,新建乙個hellowold專案,編譯連線(eclipse cdt使用mingw編譯專案,該文章是mingw32的使用方法,mingw64也同樣適用),看是否能編譯執行。

如果想再32位的環境下,使用mingw-w64-bin_i686-mingw_20110510_sezero.zip,編譯64位的程式,以上基本相同,但需要做一下修改:

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

x86_64-w64-mingw32-g   -v

這個是交叉編譯的編譯工具的命名比較奇特的地方,可能是若在相同的機器上安裝多個mingw64,gcc出現同名的情況。

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

我的電腦–右鍵–屬性–高階–環境變數–系統變數中的path–雙擊

在path的最前面新增:

d:\thsoft\mingw64\x86_64-w64-mingw32\bin

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是更好的選擇

msys2 mingw32環境搭建

安裝 msys2 64bit msys2 安裝包及工具鏈。mirrorlist.msys server mirrorlist.mingw32 server mirrorlist.mingw64 server 12 3456 2 ffs函式未定義 拷貝 lib binutils libiberty.a...

msys64 mingw環境搭建

c msys64 etc pacman.d 修改映象檔案,用之前一定要先測試一下連線是否成功 mirrorlist.msys 這個映象非常少,我寫的位址有時也不能連線上 msys2 repository mirrorlist primary msys2.orgmirrorlist.mingw32 3...

1 環境搭建

對於這個東西嗎,我也不是很了解,邊學邊記錄下來 需要的軟體都存入雲盤了 環境搭建 2 配置好路徑後,cmd命令除錯,敲入gradle然後回車,配置成功後如圖 選好自己想要的,已經開發引擎,點選generate,開始生成專案,生成過程中 generate按鈕變灰色,等待到變回白色高亮時候,專案就建立成...