windows搭建gcc開發環境(msys2)

來源:互聯網
上載者:User
前言

可能你並不太瞭解msys2,但是作為一個程式員,你一定知道mingw,而msys2就整合了mingw,同時msys2還有一些其他的特性,例如包管理器等。
msys2可以在windows下搭建一個完美的類linux環境,包括bash、vim、gcc、make等工具都可以通過包管理器來添加和卸載
msys2的包管理器是使用的pacman,用過archlinux的應該都知道pacman了。
我們現在的目標是要整合make+gcc+gdb的一條編譯工具 安裝

下載地址:
msys2
如果是exe,直接雙擊安裝,如果是zip,直接解壓到安裝的地方即可。然後雙擊msys2.exe運行
修改pacman源

使用過archlinux的應該會知道,pacman在安裝的時候,如果源沒有設定好,下載是很慢的。
需要修改的檔案是:
1. \etc\pacman.d\mirrorlist.mingw32
2. \etc\pacman.d\mirrorlist.mingw64
3. \etc\pacman.d\mirrorlist.msys

這三個檔案
鏡像源我推薦使用下面的這兩個: 清華大學 中國科學技術大學

下面以清華大學為例:
開啟清華大學鏡像站,找到msys2項,並點開後面的協助項。

MSYS2 鏡像使用協助收錄架構MINGW: i686, x86_64MSYS: i686, x86_64安裝請訪問該鏡像目錄下的 distrib/ 目錄(x86_64 、i686),找到名為 msys2-<架構>-<日期>.exe 的檔案(如 msys2-x86_64-20141113.exe),下載安裝即可。pacman 的配置編輯 /etc/pacman.d/mirrorlist.mingw32 ,在檔案開頭添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686編輯 /etc/pacman.d/mirrorlist.mingw64 ,在檔案開頭添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64編輯 /etc/pacman.d/mirrorlist.msys ,在檔案開頭添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch然後執行 pacman -Sy 重新整理軟體包資料即可。

安裝可以跳過直接看pacman即可,參照這修改
中國科學技術大學方法可以參考清華的。 下載工具包

下載工具包這一部分就是純粹的pacman知識了,涉及的指令有:
pacman -Sy 更新軟體包資料
pacman -Syu 更新所有
pacman -Ss xx 查詢軟體xx的資訊
pacman -S xx 安裝軟體xx 下載make

我們先通過命令pacman -Ss make查詢完整的make包名
我們可以看到,每個軟體大致分為了三大類:mingw32、mingw64、msys,如果想下載mingw那麼就要對應著自己的系統下載,32位和64位要區分
我們下載msys類就行。比如我們搜到的make是這樣的:

msys/automake1.9 1.9.6-2 (base-devel)    A GNU tool for automatically creating Makefilesmsys/cmake 3.6.2-1    A cross-platform open-source make systemmsys/colormake-git r8.9c1d2e6-1    Colorized build outputmsys/make 4.2.1-1 (base-devel) [已安裝]    GNU make utility to maintain groups of programsmsys/make-git 4.1.8.g292da6f-1    GNU make utility to maintain groups of programsmsys/perl 5.24.1-2 (base-devel)

即msys/make,所以我們安裝的時候只需要輸入:

pacman -S msys/make

或者直接輸入

pacman -S make

就會預設安裝msys/make 下載gcc

我們先通過命令pacman -Ss gcc查詢完整的gcc包名

mingw64/mingw-w64-x86_64-gcc-objc 6.3.0-1 (mingw-w64-x86_64-toolchain)    GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64mingw64/mingw-w64-x86_64-lcov 1.12-1    front-end for GCC's coverage testing tool gcovmsys/gcc 6.3.0-1 (msys2-devel)    The GNU Compiler Collection - C and C++ frontendsmsys/gcc-fortran 6.3.0-1 (msys2-devel)    Fortran front-end for GCC

即msys/gcc,所以我們安裝的時候只需要輸入:

pacman -S msys/gcc

或者

pacman -S gcc
測試

安裝後我們測試一下:

make -v

顯示類似如下內容說明安裝成功:

GNU Make 4.2.1為 x86_64-pc-msys 編譯Copyright (C) 1988-2016 Free Software Foundation, Inc.許可證:GPLv3+:GNU 通用公用許可證第 3 版或更新版本<http://gnu.org/licenses/gpl.html>。本軟體是自由軟體:您可以自由修改和重新發布它。在法律允許的範圍內沒有其他保證。

然後測試gcc:

使用內建 specs。COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-msys/6.3.0/lto-wrapper.exe目標:x86_64-pc-msys配置為:/msys_scripts/gcc/src/gcc-6.3.0/configure --build=x86_64-pc-msys --prefix=/usr --libexecdir=/usr/lib --enable-bootstrap --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --with-arch=x86-64 --with-tune=generic --disable-multilib --enable-__cxa_atexit --with-dwarf2 --enable-languages=c,c++,fortran,lto --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --disable-win32-registry --disable-symvers --with-gnu-ld --with-gnu-as --disable-isl-version-check --enable-checking=release --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible執行緒模式:posixgcc 版本 6.3.0 (GCC)

其他的軟體都是這麼玩的,我就不介紹了。 編譯測試

我們先建立一個demo.c檔案,然後編寫一段測試代碼:

#include <stdio.h>int main(){    printf("abcDEF\r\n");}

儲存
然後我們通過cd 命令將msys的目錄切換到這個c檔案處
後執行

$gcc demo.c -o demo

如果編譯沒有錯誤,那麼會在目前的目錄下產生demo.exe,然後運行:

$./demo.exe

即可看到運行結果
運行過程如下:

xml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ gcc demo.c -o demoxml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ lsdemo.c  demo.exexml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ ./demo.exeabcDEF

當然,如果我們需要進行細緻的分析代碼,在編譯的時候就帶上-g參數,然後通過objdump來分析彙編源碼吧

xml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ gcc demo.c -g -o demoxml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ objdump -f ./demo.exe./demo.exe:     檔案格式 pei-x86-64體繫結構:i386:x86-64,標誌 0x0000013a:EXEC_P, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, D_PAGED起始地址 0x0000000100401000xml@DESKTOP-B0SS2KE MSYS /f/xml/test/DEMO1$ objdump -S ./demo.exe./demo.exe:     檔案格式 pei-x86-64Disassembly of section .text:......00000001004010e0 <main>:#include <stdio.h>int main(){   1004010e0:   55                      push   %rbp   1004010e1:   48 89 e5                mov    %rsp,%rbp   1004010e4:   48 83 ec 20             sub    $0x20,%rsp   1004010e8:   e8 33 00 00 00          callq  100401120 <__main>        printf("abcDEF\r\n");   1004010ed:   48 8d 0d 3c 1f 00 00    lea    0x1f3c(%rip),%rcx        # 100403030 <.rdata>   1004010f4:   e8 37 00 00 00          callq  100401130 <puts>   1004010f9:   b8 00 00 00 00          mov    $0x0,%eax}......

當然我們也可以安裝gdb,然後通過gdb來調試代碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.