Msys+Mingw在手 妙用在心!

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

1 緣起

  平時在一些c++群面,看見很多大學十分努力的學習c++/MFC ,看見在程式設計語言百花爭芳的時候,C/C++還是很有很有魅力。估計很多初學者使用都是window下的visual stdio 開發工具。 通過這篇文章可以其他的編譯C++工具,融合linux和windows c++開發的能力。

    這麼多年來從事過window/linux下c/c++開發,對平時的使用過的開發工具,做一個回顧總結 ,主要介紹Msys+Mingw的工具簡單使用和在Linux交叉編譯win下程式。下面就引出本文要提到的明星Msys+Mingw

2 在window下如何查看即時log檔案尾部追加內容?

  開發實際項目,肯定必須有一個log檔案,來輸出些日誌資訊,這樣開發人員可以通過log尋找bugs.

  現在開發語言都提供現成類,輸出日誌。

  那如何在window平台下查看這種即時遞增的日記?

      用文字編輯器 world 開啟太麻煩了,並且不方便查看尾部追加內容。

      怎麼辦呢?

      解決過linux/unix 的朋友就會想到 ,如果有tail 命令就好了,一個tail -f /var/log/a.log 就可以查看日誌即時的增量。

      所以的明星登場了

3 msys+mingw  window平台下崇尚gnu精神的實踐者.

    下面看一看baidu 百科是怎麼介紹  http://baike.baidu.com/view/371287.htm?fr=aladdin

  Minimal GNU(POSIX)system on Windows,是一個小型的GNU環境,包括基本的bash,make等等。是Windows下最優秀的GNU環境。(是否厭倦了Cygwin蝸牛般的shell環境,試試MSYS中的rxvt)

 

MinGW:即Minimalist GNU for Windows。它是一些標頭檔和函數庫的集合,該集合允許人們在沒有第三方動態連結程式庫的情況下使用GCC(GNU Compiler C)產生Win32程式。MinGW主要由GNU binary utilities、GCC和GDB組成。同時還包括一些必要的庫,例如libc(C Runtime),及專門用於Win32環境的API介面庫。如果你想學習linux環境下的編程,而又不想裝linux,那你就裝一個MinGW吧。

     有了Msys+Mingw,我們就可以在window,就可以學習GCC編程,一致linux下程式到window了.

       百科也把Msys+Mingw的“堂哥Cygwin”缺點說了一下,在Msys+Mingw還沒有流行的時候,大家都使用Cygwin. 只能感歎"青出於藍 勝於藍" ,Cygwin已經不是“當年的小甜甜” ,變成了“牛大嫂”

4 安裝msys+mingw 很簡單,一鍵安裝.

  直接去Mingw的網站 http://www.mingw.org/,在左側導航點擊download 就到跳轉到sourceforge.net  下載mingw-get-setup.exe (86.5 kB)

  選擇msys-base, mingw32-base, mingw-developer-toolkit,mingw-gcc-g++包,進行安裝

       

      預設的安裝路徑C:\MinGW,  進入C:\MinGW\msys\1.0中 ,給msys 建立案頭的捷徑.

      點擊案頭msys 表徵圖 ,開始進入msys之旅。

 

5 有圖有真相 -- tail 檢測檔案尾部的追加內容

  在msys中 訪問C盤使用/c/ , D盤使用/d/, 其他磁碟,亦複如是。

      下面示範 使用tail 命令檢查D:/test.log 檔案尾增量內容,同時使用 echo 向檔案追加內容。

     

       的確是大家期待的那樣!!!

       以後再有即時查看window平台下程式文本log的情境,大家成竹在胸了。。

6  給Msys添加左膀wget  "鏡像網站不求人"

      大家可以baidu下wget ,簡單說是linux平台下載檔案的程式,應用比較廣。

     本節示範在Msys中怎麼編譯,在window平台就可以鏡像個網站,不用求助第三方軟體了。

     首先下載wget-1.15.tar.gz.    下載後拷貝C:\MinGW\msys\1.0\home中。

    
      

       這樣一如就像在Linux 編譯器一樣,等一會就就編譯完了。 下面就是wget大顯身手的時候--鏡像網站了

 cd  ; wget.exe  -r -p -np -k http://www.xiulian.com/XMZHF/xmzf-index.htm
-r 表示遞迴下載,會下載所有的連結,不過要注意的是,不要單獨使用這個參數,因為如果你要下載的網站也有別的網站的連結,wget也會把別的網站的東西下載下來,所以要加上-np這個參數,表示不下載別的網站的連結.
-np 表示不下載別的網站的連結.
-k 表示將下載的網頁裡的連結修改為本地連結.
-p 獲得所有顯示網頁所需的元素,比片什麼的.
-E  或 --html-extension   將儲存的URL的檔案尾碼名設定為“.html”

     下載過程日誌找圖,生存鏡像的網址目錄 www.xiulian.com 以及相應的目錄。

    

   

       大家是不是已經感覺到開源的偉大,以後在鏡像個網頁,wget 就搞定,再不用那些收費軟體,或者老彈廣告的軟體

     有msys+mingw,linux下的好多軟體,就可以編譯,講給你的window平台插上”翅膀“。

 

     不過大家可能感覺到 用msys編譯的軟體比較慢,不在像在linux編譯軟體快!

     下面就介紹個本最後一個玩法。

7 ”獨家玩法“-mingw-w64  在linux編譯win32/win64 軟體

     首先介紹下環境,我用的是debian7.3系統,啟動並執行virtualbox虛擬機器中.

     其次介紹mingw-w64 有2個版本的編譯器

      g++-mingw-w64-i686   - GNU C++ compiler for MinGW-w64 targeting Win32  --產生32位程式
      g++-mingw-w64-x86-64  - GNU C++ compiler for MinGW-w64 targeting Win64  -- 產生64位程式     

     在debian下 我選擇是產生32位程式的g++-mingw-w64-i686,使用apt-get 命令安裝起來很簡單。

     apt-get install binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-i686-dev mingw-w64-tools

     建立helloword.cpp 檔案代碼如下

#include<cstdio>
#include<cstdlib>
#include<iostream>

int main(int argc ,char* argv[])
{
        std::cout << "compile hello world.exe by linux and i686-w64-mingw32-g++\n";
        system("PAUSE") ;
        return 0;
}

    編譯器  

    i686-w64-mingw32-g++  hellword.cpp -o helloword.exe

    將linux編譯好的helloword.exe  弄到window 運行

    

     是真的。人格擔保。。

     有的看官感覺這太簡單了,不過癮!

8  殺手鐧展示 用linux下的mingw 交叉編譯出運行在window平台的wget

       下載wget源碼,解壓同6節。執行下面幾個命令,就可以編譯出wget.exe

       export CC=i686-w64-mingw32-gcc
   export RANLIB=i686-w64-mingw32-ranlib
       export LIBS=-lpthread
   ./configure --host=mingw32 --without-ssl --disable-ipv6

       make

    下載wget.exe 到window 案頭,運行起來來個,

   

      

9 小結

     前面介紹關於mingw+msys ,一些簡單用法, 有需求有興趣的可以玩一玩,的確能夠讓window下c++/C 開發人員眼睛一亮。。有所頓悟。

     非常流行媒體的播放器VLC社區,就使用linux 下mingw 交叉編譯出運行在window下VLC,這也是大家越來越喜歡用Mingw的原因之一。

    如果有任何疑惑,請在這裡聯絡我,多踩踩帖!

  

 

                       

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.