msys2交叉編譯工具
『壹』 求MSYS2(Windows開發環境搭建) V2019.5.2 免費版網盤資源
鏈接:
提取碼:pd7h
軟體名稱:MSYS2(Windows開發環境搭建)V2019.5.2免費版
語言:簡體中文
大小:70.12MB
類別:系統工具
介紹:MSYS2是一款軟體開發環境平台,作為MSYS的獨立重寫版本,提供了一個類似於Unix的環境、命令行界面和軟體存儲庫。該軟體支持中文,用戶需要中文的話可以直接輸入中文和瀏覽中文目錄,讓用戶的安裝、使用、構建和移植軟體變得更加容易。
『貳』 MSYS2的安裝說明
1、下載並運行安裝包:
32位Windows下載msys2-i686安裝包,64位Windows下載msys2-x86_64安裝包;
2、點擊「Next(下一步)」
3、輸入安裝目錄(目錄名稱必須為ASCII字元短路徑,既不能使用重音符號「 』 」,也不能使用空格或連接符號「-」)
4、勾選「RunMSYS2now(現在運行MSYS2)」
5、通過以下命令來更新MSYS2系統文件包: pacman--needed-Sybashpacmanpacman-mirrorsmsys2-runtime6、關閉MSYS2,從開始菜單重新啟動MSYS2並更新其他軟體包 pacman-Su
7、MSYS2安裝完成,你就可以使用MSYS2中的pacman包管理工具安裝你喜愛的Vim、Git、GCC等工具軟體了。

『叄』 MSYS2的特點
安裝方便 自帶 pacman 管理,可以使用 pkgtool 來 makepkg 較快的源速度(可以修改源地址) 自帶軟體和庫較全而且比較新 使用mingw-w64工具鏈,可以編譯32位或64位代碼(需要自行安裝) 中文支持好,可以直接輸入和瀏覽中文目錄

『肆』 Ubuntu下使用mingw-w64交叉編譯ffmpeg
網上大部分編譯windows版ffmpeg的教程都是基於msys+mingw的,完全運行在windows上。由於msys2的性能實在是太糟糕了,編譯速度太感人,因此決定研究linux下使用mingw-w64交叉編譯
先是安裝ubuntu版的mingw-w64
sudo apt install mingw-w64
然後在configure ffmpeg的時候,在正常的配置項之後加上。
--arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32-
上面是32位庫編譯的配置,64位的如下
--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32-
而且最好使用動態庫,靜態庫還需要鏈接一大堆mingw的庫實現,而且還可能鏈接失敗。但這樣編譯出來的動態庫,還需要依賴 libgcc_s_sjlj-1.dll。如果要移除這個依賴,configure的時候還要加上 --extra-ldflags='-static-libgcc'
『伍』 MSYS2的MSYS2是什麼
MSYS2 是MSYS的一個升級版,准確的說是集成了pacman和Mingw-w64的Cygwin升級版, 提供了bash shell等linux環境、版本控制軟體(git/hg)和MinGW-w64 工具鏈。與MSYS最大的區別是移植了 Arch Linux的軟體包管理系統 Pacman(其實是與Cygwin的區別)。

『陸』 Windows搭建MSYS2和MINGW64環境
為了在windows下編譯GDAL和Cesium Terrain Builder等軟體,需要搭建MSYS2和MINGW64的編譯環境
Windows Server 2012 R2
MSYS2 64位
雙擊安裝MSYS2之後,由於MSYS2默認資源站點速度較慢,可以配置國內 清華大學開源鏡像站
安裝完成後,編輯 /etc/pacman.d/mirrorlist.mingw32 ,在文件開頭添加:
編輯 /etc/pacman.d/mirrorlist.mingw64 ,在文件開頭添加:
編輯 /etc/pacman.d/mirrorlist.msys ,在文件開頭添加:
然後執行 pacman -Sy 刷新軟體包數據即可。
配置國內鏡像站點後,在shell裡面執行 pacman -Syuu 更新全部依賴
MSYS2內置了pacman包管理工具,運行
pacman -S gcc make
即可安裝gcc,make等工具
msys2安裝完成後,開始菜單會有三個啟動方式:
三種啟動方式區別主要在於編譯環境軟體包的不同,如gcc,clang等版本不同。通用的工具如:grep,git,vim,emacs等等在三種方式內都是一樣的。
默認情況下, msys64/home 會作為系統默認home目錄,如果需要修改home目錄,可在環境變數-》用戶變數中建立 Home 變數,指向自定義位置,然後修改 msys64/etc/nsswitch.conf ,設置 db_home: /%Home%
『柒』 如何使用clang+llvm+binutils+newlib+gdb搭建交叉編譯環境
測試環境:Windows8.1 + MSYS2 with Mingw, Clang, LLVM + GNU Tools for ARM Embedded Processor
首先用用Clang生成LLVM位元組碼
clang -emit-llvm --target=arm-none-eabi -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
注意,需要手動添加GNU Tools for ARM Embedd的頭文件
然後用llc生成匯編代碼
接著,使用GNU Tools for ARM Embedded Processor的匯編器生成可執行文件
arm-none-eabi-as -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
二進制文件用GNU Tools for ARM Embedded Processor里的arm-none-eabi-obj生成
一些需要注意的地方是Clang的默認配置可能和目標架構的匯編器不一致。比如arm-none-eabi-as會默認開啟short-enums,當直接使用arm-none-eabi-gcc時這不是問題,因為編譯器也默認開啟了這個選項,但Clang不會,所以需要手動加上-fshort-enums。
