windows mingw 64,SDL ,devil,glfw,opengl,qt环境搭建
目錄
一、分別下載包進(jìn)行安裝
一、下載安裝mingw-w64
二、下載安裝SDL2-devel-2.0.12-mingw,SDL2_mixer-devel-2.0.4-mingw
三、設(shè)置環(huán)境變量
四、下載配置DevIL
五、boost配置
二、下載msys進(jìn)行包管理
三? `qMain(int, char**)'錯(cuò)誤
一、分別下載包進(jìn)行安裝
一、下載安裝mingw-w64
下載mingw-w64-install.exe,安裝時(shí)選擇x86-64。
安裝完成后目錄如下:
MinGW-W64是同時(shí)支持32位和64位的。甚至還支持32位和64位的交叉編譯(啟用multilib支持的MinGW發(fā)行版例如mingw-builds可以用-m32或-m64指定)。
顯然,W64和支持的架構(gòu)無(wú)關(guān)。上面i686就不是64位的平臺(tái)(而且可以看出這里的32也和架構(gòu)沒(méi)關(guān)系)。支持64為的對(duì)應(yīng)三元組是x86_64-w64-mingw32。
……容易讓人頭疼的是,這兩個(gè)項(xiàng)目現(xiàn)在都沒(méi)死,偏偏還很容易因?yàn)檫@些字面上的原因搞錯(cuò)。為了下文描述方便,原版MinGW稱為MinGW.org。
這里有一點(diǎn)非常重要:只有MinGW-W64是GCC官方支持的(盡管mingw32平臺(tái)是二等公民)。Kai Tietz擁有GCC官方repo的提交權(quán)限。
所以,使用MinGW-W64的GCC一般比MinGW.org有更新更全面的支持,所以現(xiàn)在一般推薦MinGW-W64發(fā)行版。
轉(zhuǎn)自:https://www.cnblogs.com/findumars/p/7492636.html
二、下載安裝SDL2-devel-2.0.12-mingw,SDL2_mixer-devel-2.0.4-mingw
下載SDL2-devel-2.0.12-mingw? SDL2_mixer-devel-2.0.4-mingw,解壓,將下載好的包中
SDL2_mixer-devel-2.0.4-mingw\SDL2_mixer-2.0.4\x86_64-w64-mingw32和
SDL2-devel-2.0.12-mingw\SDL2-2.0.12\x86_64-w64-mingw32目錄下的bin include lib目錄直接粘貼到上圖中C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64目錄(合并目錄)。
三、設(shè)置環(huán)境變量
算是比較重要的配置,筆者之前就是因?yàn)榄h(huán)境變量沒(méi)配好導(dǎo)致無(wú)法識(shí)別到SDL庫(kù) 打開(kāi)windows屬性->高級(jí)->環(huán)境變量 我們直接設(shè)置系統(tǒng)變量 找到Path,打開(kāi)新建吧../msys64/mingw64/bin復(fù)制進(jìn)去,根據(jù)你的具體路徑填寫(xiě),這里只做參考 然后回到系統(tǒng)變量,新建一個(gè)C_INCLUDE_PATH
輸入值為C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\include\
再新建一個(gè)CPLUS_INCLUDE_PATH
輸入C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\include\; ?
再新建LIBRARY_PATH
輸入C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib
MinGW配置成功標(biāo)志:在cmd控制臺(tái)下輸入gcc -v,如顯示gcc版本信息,即成功.
https://dongqiceo.github.io/the-post-9982/
打開(kāi)QT,檢查SDL2配置效果
四、下載配置DevIL
下載DevIL-Windows-SDK-1.8.0解壓后
D:\code\DevIL-Windows-SDK-1.8.0\DevIL Windows SDK目錄下include和lib放到C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64目錄(合并目錄)。
下載mingw-w64-x86_64-devil-1.8.0-6-any.pkg。解壓工具:https://github.com/mcmilk/7-Zip-zstd/releases
?
五、boost配置
下載boost_1_73_0,解壓
進(jìn)入windows命令行窗口(運(yùn)行,cmd),進(jìn)入D:\code\boost_1_73_0\boost_1_73_0目錄,
輸入bootstrap.bat.
生成b2.exe
./b2.exe install --prefix=D:\boost\boost_1.65.1_mingw --build-type=complete toolset=gcc threading=multi
--prefix=<PREFIX> ? 編譯后安裝路徑,默認(rèn)C:\Boost
--build-type=<type> 編譯類型,可選minimal(最小)、complete(完整),默認(rèn)minimal。
--with-<library> ? ?加入此參數(shù),代表只編譯的庫(kù)。
--without-<library> 加入此參數(shù),代表忽略編譯的庫(kù)。
toolset ? ? ? ? ? ? 編譯器,win下默認(rèn)msvc,用MinGW則選擇gcc。
https://blog.csdn.net/godmaycry/article/details/78707416
將D:\boost\boost_1.65.1_mingw\include\boost-1_73\boost目錄下的boost文件夾拷貝到C:\MinGW\include下面
將D:\boost\boost_1.65.1_mingw\include\boost-1_73\boost下的lib文件拷貝到C:\MinGW\lib,將D:\boost\boost_1.65.1_mingw\include\boost-1_73\boost下的dll文件拷貝到C:\MinGW\bin
https://www.cnblogs.com/findumars/p/6375658.html
二、下載msys進(jìn)行包管理
安裝msys2
msys2下載
安裝過(guò)程沒(méi)有什么好說(shuō)
主要是接下來(lái)的msys2配置mingw
打開(kāi)msys2.exe
先檢查更新: ` pacman -Syu `
用的還是pacman邪教 :laughing: ,不得不說(shuō) good job
我以前用的一直是mingw的整合包,版本太雜,十分混淆視聽(tīng),如果要用最好直接下載nuwen.net上的,也包含sdl,十分省力,不過(guò)為了后續(xù)開(kāi)發(fā)方便,我們今天用的是msys2
接下來(lái)直接搜索所以mingw64
pacman -Sl | grep mingw64 pacman -S mingw-w64-x86_64-SDL2 pacman -S mingw-w64-x86_64-SDL2_image pacman -S mingw-w64-x86_64-SDL2_mixer pacman -S mingw-w64-x86_64-devil pacman -S mingw-w64-x86_64-glfw環(huán)境變量
算是比較重要的配置,筆者之前就是因?yàn)榄h(huán)境變量沒(méi)配好導(dǎo)致無(wú)法識(shí)別到SDL庫(kù) 打開(kāi)windows屬性->高級(jí)->環(huán)境變量 我們直接設(shè)置系統(tǒng)變量 找到Path,打開(kāi)新建吧../msys64/mingw64/bin復(fù)制進(jìn)去,根據(jù)你的具體路徑填寫(xiě),這里只做參考 然后回到系統(tǒng)變量,新建一個(gè)C_INCLUDEDE_PATH
輸入值為D:\msys64\mingw64\include\
再新建一個(gè)CPLUS_INCLUDE_PATH
輸入D:\msys64\mingw64\include\; D:\msys64\mingw64\include\c++\7.2.0?再新建LIBRARY_PATH
輸入D:\msys64\mingw64\lib
到此環(huán)境變量配置完畢,接下來(lái)的就是gcc的編譯配置,如果大型項(xiàng)目也可以用makefile或者cmake等工具,今天也就不多贅述
?用QT打開(kāi)項(xiàng)目
在pro文件中設(shè)置
LIBS += -lSDL2 -lIL -lILU -lSDL2_mixer -lglfw3 -lopengl32參考自:
https://dongqiceo.github.io/the-post-9982/
gcc -m32 -Wall -ofoo mycube.c -L"C:\MinGW\lib" -lglut32cu -lglu32 -lopengl32三 `qMain(int, char**)'錯(cuò)誤
QT結(jié)合sdl做視頻播放器,報(bào)如下錯(cuò)誤:
c:\Users\qt\work\qt\qtbase\src\winmain\qtmain_win.cpp:111: error: undefined reference to `qMain(int, char**)'
查明原因是SDL和QT同時(shí)定義了main。
解決方法:
在main函數(shù)前加上
#undef main
?
?
總結(jié)
以上是生活随笔為你收集整理的windows mingw 64,SDL ,devil,glfw,opengl,qt环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自娱自乐的FreeRTOS——confi
- 下一篇: Qt QTouchEvent 多点触控