Hướng dẫn cài đặt MSYS2 MinGW và cấu hình debugger cho Codeblock

1. Install MSYS2

Vào trang https://msys2.github.io/ và download installer về. Nhớ là nếu máy bạn xài là 64-bit thì bạn download msys2-x86_64, còn 32-bit thì download msys2-i686.

Máy mình là 64-bit, nên mình down bản x86_64. Mình install nó vào H:/msys2_64. Nhớ chọn “Run MSYS2 now” để update các thư viện sau khi install.

MSYS2InstallationFolder

Sau đó khi MSYS console đã được bật, bạn cần update pacman. pacman là công cụ của Arch Linux, tương đương với apt-get bên Ubuntu. Gõ lệnh:

pacman -Sy pacman

MSYS2_update_pacman

y để xác nhận update. Trong hình này vì mình đã update pacman rồi nên nó mới hỏi lại có reinstall hay không.

Sau đó đóng cửa sổ chương trình, vô Start Menu -> MSYS2 64-bit -> MSYS2 MSYS để bật lại MSYS console, chạy tiếp lệnh này để update các công cụ còn lại:

pacman -Syu

Bản MSYS2 này hình như thiếu cộng cụ make và vài công cụ giải nén khác. Để install 3 công cụ make, tar, và unzip, bạn chỉ cần gõ vài ba dòng lệnh là xong:

pacman -S make tar unzip

2. Install MinGW-w64

Tương tự như khi install make, bạn chỉ cần gõ dòng lệnh:

pacman -S mingw-w64-x86_64-gcc

(thế x86_64 bằng i686 nếu máy bạn là 32-bit)

Rồi bấm y chờ nó install là xong. Thời gian install khá lẹ, chưa đầy 2 phút là xong rồi.

Cửa số console hiện tại ko có MinGW trong PATH, nên sau khi install MinGW rồi, bạn nên bật MSYS2 MING64 (hoặc MING32) trong Start Menu thay vì MSYS2 MSYS.

MSYS2_g%20%20_version

Phiên bản gcc này không kèm sẵn gdb, nên bạn còn phải install thêm gdb cho mingw nữa:

pacman -S mingw-w64-x86_64-gdb

Và install thư viện Boost cực kì đơn giản với 1 dòng lệnh:

pacman -S mingw-w64-x86_64-boost

Nếu cần bạn cũng có thể install thêm gmp: pacman -S mingw-w64-x86_64-gmp, nhưng hình như nó đã có sẵn rồi.

3. Thêm MSYS và MinGW-w64 vào PATH

Ra ngoài Desktop, right-click vào This PC icon, chọn Properties. Bạn cũng có thể vào Control Panel -> System and Security -> System để bật cửa sổ này.

Chọn dòng Advanced system settings rồi Environment Variables…

SystemProperties_window

Trong cửa sổ Environment Variables, tạo System variables mới bằng cách bấm vào nút New… ở dưới:

Rồi tạo MSYS2_ROOT là đường dẫn tới thư mục chứa MSYS2 mà bạn đã install ở trên, cộng thêm /usr

MSYS2_ROOT

MINGW64_ROOT là đường dẫn tới thư mục MINGW64

MINGW64_ROOT

Tạo xong bạn vô lại cửa sổ Environment Variables, double-click vào dòng path ở trên (trong thẻ User variables), rồi bấm New để thêm vào 2 đường dẫn như trong hình:

Ra ngoài bật cmd lên, gõ vào g++ --version, make --version, where g++, where make để kiểm tra xem đã thêm 2 đường dẫn kể trên vào PATH chưa:

CheckMSYS-MINGW64Path

Nếu nó không báo lỗi thì bạn đã thêm MSYS2 usr/binmingw64/bin vào PATH thành công!

4. Setup MinGW-w64 compiler và debugger cho Code::Blocks

4.1. Setup debugger

Đầu tiên bạn cần tạo file pp.gdb trong thư mục %MINGW64_ROOT%\bin có nội dung như sau:

python
import sys, os
sys.path.insert(0, os.environ.get('MINGW64_ROOT') + '\\share\\gcc-6.2.0\\python\\libstdcxx\\v6')
from printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

Tùy vào version của gcc mà bạn chọn thư mục tương ứng, ở đây gcc --version nó in ra 6.2.0 nên mình chọn path là '\\share\\gcc-6.2.0\\python\\libstdcxx\\v6'. Hiện tại gcc mới nhất là 8.2.0 thì sửa số 6 thành số 8.

Sau đó mở Code::Blocks lên, chọn Settings -> Debugger…, bấm nút Create Config và đặt tên nó là MSYS2 MINGW64.

Sau đó thêm thông tin cho debugger này:

4.2. Setup compiler

Chọn Settings -> Compiler…, bấm nút Copy để tạo thông tin cho compiler mới, đặt tên nó là MSYS2 MINGW64, Set as default luôn.

Và thêm thông tin cho Compiler này trong thẻ Toolchain executables:

Ở dòng cuối cùng, Code::Blocks đòi mingw32-make.exe, nó không có sẵn trong /mingw64/bin, bạn có thể install bằng cách gõ lệnh pacman -S mingw-w64-x86_64-make.

Vậy là xong. Khởi động lại Code::Blocks rồi mở 1 project compile, debug thử.

Hiện tại mình chạy thử thì thấy cái debugger này không parse được std::list nên bạn có thấy nó không hiện ra nội dung của std::list là bình thường. Nếu nội dung của std::string không hiện ra thì có thể phải cần set Debug -> Active debuggers -> MSYS2 MINGW64.

12 Likes

Thật ra ko cần thêm MSYS2 usr/binmingw64/bin vào PATH cũng được, nếu bạn cài nhiều phiên bản GCC trên Windows thì vào PATH xóa %MSYS2_ROOT%\bin%MINGW_ROOT%\bin đi.

Thêm 2 đường dẫn này vào PATH giúp bạn chạy file .exe bằng tay được (double click vô file .exe). Nếu bỏ đi thì bạn phải copy mấy file .dll còn thiếu trong mingw64/bin như libstdc++-6.dlllibgcc_s_seh-1.dll (có thể cần thêm libwinpthread-1.dll) vào cùng thư mục chứa file .exe mới double click chạy được.

6 Likes

Cho e hỏi ở bước 4.1 tạo file pp.gdb trong thư mục %MINGW64_ROOT%\bin mà thư mục này nằm đâu vậy

Bạn vô Explorer ấy, dán cái cụm %MINGW64_ROOT% vào chỗ browser rồi enter là thấy.

2 Likes

là thư mục cài đặt msys2\mingw64 ấy :V ví dụ cài msys2 vào C:\msys2 thì nó là C:\msys2\mingw64

mình tạo thêm 2 biếnMSYS2_ROOT=C:\msys2MINGW64_ROOT=%MSYS2_ROOT%\mingw64 vào biến PATH để khỏi mất công hiện full path lên dài dòng, dễ viết script khỏi nhớ path đó là gì đó mà :V

à mấy bản gcc mới của msys2 nó fix lỗi debugger này rồi có thể xài default debugger cũng ra được ko cần phải tạo thêm pp.dbg đâu.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?