1. 程式人生 > >windows搭建gcc開發環境(msys2)

windows搭建gcc開發環境(msys2)

前言

可能你並不太瞭解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項,並點開後面的幫助項。
pacman配置

MSYS2 映象使用幫助
收錄架構
MINGW: i686, x86_64
MSYS: 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 Makefiles
msys/cmake 3.6.2-1
    A cross-platform open-source make system
msys/colormake-git r8.9c1d2e6-1
    Colorized build output
msys/make 4.2.1-1 (base-devel) [已安裝]
    GNU make utility to maintain groups of programs
msys/make-git 4.1.8.g292da6f-1
    GNU make utility to maintain groups of programs
msys/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-w64
mingw64/mingw-w64-x86_64-lcov 1.12-1
    front-end for GCC's coverage testing tool gcov
msys/gcc 6.3.0-1 (msys2-devel)
    The GNU Compiler Collection - C and C++ frontends
msys/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=gcc
COLLECT_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
執行緒模型:posix
gcc 版本 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

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

[email protected] MSYS /f/xml/test/DEMO1
$ gcc demo.c -o demo

[email protected] MSYS /f/xml/test/DEMO1
$ ls
demo.c  demo.exe

[email protected] MSYS /f/xml/test/DEMO1
$ ./demo.exe
abcDEF

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

[email protected] MSYS /f/xml/test/DEMO1
$ gcc demo.c -g -o demo

[email protected] 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
起始地址 0x0000000100401000

[email protected] MSYS /f/xml/test/DEMO1
$ objdump -S ./demo.exe

./demo.exe:     檔案格式 pei-x86-64


Disassembly 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來除錯程式碼

相關推薦

windows搭建gcc開發環境(msys2)

前言 可能你並不太瞭解msys2,但是作為一個程式設計師,你一定知道mingw,而msys2就集成了mingw,同時msys2還有一些其他的特性,例如包管理器等。 msys2可以在windows下搭建一個完美的類linux環境,包括bash、vim、gcc、

windows搭建gcc開發環境(msys2) objdump

std 結果 open def 自己 perl asc prefix 允許 前言 可能你並不太了解msys2,但是作為一個程序員,你一定知道mingw,而msys2就集成了mingw,同時msys2還有一些其他的特性,例如包管理器等。 msys2可以在windo

利用Intellij Idea在windows搭建spark 開發環境(含打jar包過程)(一)

本文的目的:利用Intellij Idea在windows搭建spark 開發環境 環境:windows 10, intellij idea2016.1.1, spark 1.6.2(HDP),hadoop2.7.3(HDP),scala 2.10.5(編譯環境), sbt

Windows搭建Python開發環境,實現Hello World 的列印

1.下載並安裝Python程式 1.1 下載Python 下載軟體的方式有很多種,可以去官網下載https://www.python.org 或者是 電腦管家中的軟體中心去下載。  1.2 安裝Python 跟普通的軟體安裝一樣,下一步、下一步,安裝的過程。 但是有兩個地

Windows環境搭建基於Eclipse的STM32 GCC 開發環境(二)工程設定篇

工具安裝完成後,接下來就可以基於GCC進行STM32的開發了。 開啟Eclipse軟體,設定好工作區後,File -> New -> C Project 新建一個工程,如下圖 GNU ARM外掛提供了多個工程模板,如果不想用模板,可以選擇Empty Proje

Windows環境搭建基於Eclipse的STM32 GCC 開發環境(一)工具篇

        這段時間玩了一段STM32F207和STM32F407,以前一直用IAR環境,但STM32的庫函式太多,碼程式碼實在是費勁,要是有類似VC助手那樣的提示功能就好了。上網搜尋了一堆資料,貌似Eclipse + 外掛可以實現想要的功能,於是乎就搞了一下Windo

Windows搭建Android開發環境

c51 公司 智能 單獨 window 引用 ssp 管理 第一個  隨著移動互聯網的迅速發展,前端的概念已發生很大的變化,已不僅僅局限在網頁端。而Android系統作為智能機市場的老大,作為前端開發工程師,非常有必要了解和學習。但面對眾多學習資料,站在前端開發工程

Python開發入門Windows搭建python開發環境

python開發入門 Python是一種高級計算機程序設計語言。舉個例子C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。 Python基本概念 Python(英語發音:/?pa?θ?n/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van R

NDK在windows下的開發環境搭建開發過程

刷新 -1 ont static blog 簡單 包名 mfp targe 在Android應用的開發project中。無論是遊戲還是普通應用。都時常會用到.so即動態鏈接庫,關於.so是什麽玩意兒,有什麽優點。這個大家能夠在網上查一下,本人不做過多解釋。.

Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2]

set clu cto 無法安裝 urn ems water 了解 源代碼管理 Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2] 2015-07 北

Windows下Java開發環境搭建

環境 輸入 電腦 blog html dev 進行 點擊 develop 1、在cmd中輸入Java,若如下圖所示的提示,則說明當前電腦沒有安裝Java運行環境或者是JDK,則需要手動下載和安裝Java 2、打開網站http://www.oracle.com/index.

FFmpeg windows軟件開發環境搭建

並且 util avformat 環境 運行程序 頭文件路徑 shu ffplay 開發環境搭建 FFmpeg說明 FFmpeg是一個自由軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能1,包含了libavcodec ─這是一個用於多個項目中音頻和視頻的解

iBrand 教程 0.1:Windows + Homestead 5 搭建 Laravel 開發環境

總結 string 站點 provider 文字 rate 同步 目錄 use 統一開發環境 為了保證在學習和工作過程中避免因為開發環境不一致而導致各種各樣的問題,Laravel 官方為了我們提供了一個完美的開發環境 Laravel Homestead,讓我們無需再本地安裝

[Flutter] Windows平臺Flutter開發環境搭建(Andorid Studio)

dem runt tps 點擊 下載頁面 系統屬性 href source runtime 前兩天網友在群裏說起了Flutter,就了解了一下,在手機上跑了它的demo,正接就被打動了。 雖然網上有很多教程,但真正開始的時候,還是會碰到很多坑。下面詳細的講解Flutter

windows環境搭建Java開發環境(一):jdk安裝和配置

變量 win jns jdk安裝 分享 tool 直接 www. 技術 一、資源下載   官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html   本人安裝的是jdk1.8,百度雲資源:鏈

Windows系統下Eclipse上搭建Python開發環境

acl ora .com sdn down win ava ecp http 參考網站: https://blog.csdn.net/zhangphil/article/details/78962159 1、先安裝JDK ,參考網站:https://www.cnblog

Windows下JAVA開發環境搭建環境變數配置

1、安裝JDK開發環境 下載網站:http://www.oracle.com/ 開始安裝JDK: 修改安裝目錄如下: 確定之後,單擊“下一步”。 注:當提示安裝JRE時,可以選擇不要安裝。 2、配置環境變數: 對於Java程式開發而言,主要會

09-Windows下Python開發環境搭建

點我觀看配套視訊 一、Window作業系統選擇 當前教程選擇的是Win7版本,其他版本有部分差異,但差異不大;比如Win10; 所以,如果有同學使用的是Windows其他版本作業系統,安裝環境時碰到問題;可直接留言; 二、具體步驟(以Python2.x版本為

Windows下基於Eclipse搭建MapReduce開發環境

首先安裝JDK和Eclipse,安裝JDK的教程網上很多,Eclipse下在下來解壓就可以。值的一提的是,JDK和Eclipse的版本需要對應起來。這裡提供一個JDK安裝連結:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.htm

使用 Laragon 在 Windows搭建 PHP開發環境及常見問題解決

PHP的整合開發環境市面上已經有很多非常成熟好用的整合軟體了,比如WAMP, Xampp, PhpStudy等,如今我發現了另一款非常好用的整合軟體Laragon,可能更有利於新手通過PHP整合開發環境,進行web專案開發。 安裝 我們可以在官網https://laragon