mingw和cygwin都解決了c++跨平台交叉編譯的問題,使linux下的程式在windows上編譯執行成為可能。
mingw給習慣在linux上開發的人員在windows上提供了一套類似的工具集;cygwin主要是對於在linux的程式,無需改動**即可移植到windows上;gnuwin32主要是對習慣linux工具的人員,在windows上提供一套類似的命令。
unix下編譯通過的c**,在win32下編譯是不能通過的 ,當然unix和win32的api都符合標準c,即大多數函式呼叫在unix和win32下是相同的.但unix有自己一些獨特的api(如fork,spawn,signals,select,sockets等),如果**中使用了這些api,在win32下當然找不到對應的庫。但這些api的功能在win32中也能實現,下面提供兩種讓window編譯unix風格**的方法:
mingw
mingw
mingw給在習慣在linux開發的人員提供了一套在windows上開發類似linux的工具集,它包括一系列軟體:編譯工具、鏈結工具、轉儲工具、除錯工具和其它開發工具等。mingw還提供一些開源的基礎支援庫,像gnu的c/c++ rt庫(libc、libstdc++),posix的基本呼叫介面(包括pthread),甚至還有opengl和windows api的呼叫介面等。幾乎所有mingw中的軟體都是從gnu專案或linux下移植到windows下的。
與gnu不同的是,mingw編譯生成的是windows下的可執行檔案(.exe)或庫檔案(.dll,.lib),不過編譯過程中的的中間檔案仍然是.o檔案,而不是.obj檔案。
mingw的posix介面遠沒有cygwin實現的那麼全面(如:連bsd/linux socket都沒有,只能用winsock),所以mingw只是用來開發windows專屬應用的工具集。
msys
注:mingw官網:
cygwin
cygwin is:
cygwin 名字**於gnu、cygnus、windows三者的縮寫。cygwin的目標是:構建一套windows下的linux模擬環境。因此,cygwin是乙個龐大的專案,不只包括linux下的開發環境,也包括工作環境和各種各樣的linux下的軟體。
在早期,cygwin的核心是cygwin1.dll,可以認為它是乙個posix介面的實現,依靠這個動態鏈結庫,unix/linux下的軟體可以很容易的移植到windows下,並且風格保持原有的不變。不過,隨著cygwin的發展,越來越多的unix/linux程式的移植,建立基於cygwin的複雜程式依賴的庫也越來越多,現在裝完預設配置的cygwin後,就會發現有很多cyg打頭的動態鏈結庫。
注:cygwin官網:
cygwin中文網:
gnuwin32
gnuwin32使windows使用者可以在命令列視窗中使用各種各樣的linux命令,就跟使用普通的windows命令一樣簡單。
注:gnuwin32官網:
cmake
cmake is an open-source, cross-platform family of tools designed to build, test and package software.
官網:
交叉編譯器
交叉編譯器可以使我們在主機上編譯出可以在嵌入式裝置上執行的程式 install gcc aarch64 linux gnu 安裝64位用於作業系統的交叉編譯器,gcc版本是5.4,安裝位置在 usr bin sudo apt get install gcc arm linux gnueabihf 安...
ubuntu安裝交叉編譯器 安裝交叉編譯器
2 安裝方法二 1 安裝方法一 開啟ubuntu終端 使用sudo apt list gcc arm 可以檢視所有的交叉編譯器,假設安裝gcc arm linux gnueabihf,則使用sudo apt get install gcc arm linux gnueabihf就裝好了。參考 2 安...
arm linux交叉編譯器
本文出自 http embdev.gotdns.org 版本選者在linux裡面是非常重要的,沒有windows一樣有效的管理,建議選者文中的版本。否則出現錯誤的概率很高,所有的版本區別請參考各位庫的官方主頁。雖然網上有現成的工具,但是,一步步的製作下來可以讓新手理解一下linux各個庫的關係,以及...