دانلود (14MB)فایل MinGW.exe فشرده شده با فرمت 7z نسخه 4.7.2



برای نصب کافیست روی دکمه extract کلیک کنید تا همانجا پوشه ای به نام MinGW درست شود،روی MyComputer کلیک راست کنید و وارد Properties شوید و به بخش Advanced بروید و روی Environment Variables کلیک کنید و در بخش System variables روی path کلیک کنید و Edit را بزنید و در انتها یک ; گذاشته و آدرس فایل bin از MinGW را به آن اضافه کنید.

توجه کنید محلی که کامپایلر در آن وجود دارد فاصله نداشته نباشد.


برای کامپایل فایل cpp از دستور g++ و برای c از دستور gcc استفاده کنید.


نمونه استفاده:

g++ main.cpp -o main.exe
g++ D:\main.cpp -o D:\main.exe
gcc main.c -o main.exe
g++ file.cpp main.cpp -o main.exe


 -l برای اضافه کردن فایل libexample.a

نمونه:

gcc main.c -o main.exe -lgdi32 -lcairo

برای دیباگ کردن از دستور O2 به جای o استفاده کنید و برای ساخت Debug Symbols از دستور -g استفاده کنید.



تغییرات نسخه آفلاین:

1-تنها کامپایلر های c و c++ همراه MinGW است.

2-MSYS حذف شده است.


برای دیباگ کردن:

پیشنهاد من برای دیباگ کردن استفاده از یک محیط گرافیکی مثل Code::Blocks هست ولی اگر قصد استفاده از gdb رو دارید باید اینطوری عمل کنید:

اول فایل مورد نظر رو در جایی که می‌خواهیم می‌ریزیم مثلا فایل e.c در درایو D

محتوای e.c :

#include <stdio.h>

void f(int x)
{
printf("x = %d \n", x);
}

int main() 
{
int x = 100;

f(x);
printf("Hello, World! <1>\n");
printf("Hello, World! <2>\n");
printf("Hello, World! <3>\n");
return 0;
}



 
 
در ادامه وارد CMD شده وارد محل فایل (در اینجا درایو D) می‌شویم و دستور زیر را وارد میکنیم:

D:\>gcc -g -o e.exe e.c
 و بعد این دستور را وارد می‌کنیم تا ببینیم کار می‌کند؟ :
D:\>e
برای شروع gdb دستور زیر را وارد میکنیم:(در صورت عدم وجود gdb از دستور mingw-get استفاده کنید)
D:\>gdb e
سپس وارد محیط gdb شده و دیباگ را آغاز میکنیم!

GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from D:\e.exe...done.
(gdb) 

در ادامه:

دستور break main برای ایجاد break point در ابتدای تابع main
دستور start برای شروع برنامه
دستور next برای رفتن به خط بعدی
دستور step برای وارد تابع شدن(معادل step into)
دستور print برای خواندن مقدار یک متغیر
دستورquit برای خارج شدن

(gdb) break main
Breakpoint 1 at 0x4016d9: file e.c, line 10.
(gdb) start
Temporary breakpoint 2 at 0x4016d9: file e.c, line 10.
Starting program: D:\e.exe
[New Thread 5228.0xbac]

Breakpoint 1, main () at e.c:10
10              int x = 100;
(gdb) next
12              f(x);
(gdb) print x
$1 = 100
(gdb) step
f (x=100) at e.c:5
5               printf("x = %d \n", x);
(gdb) next
x = 100
6       }
(gdb) next
main () at e.c:14
14              printf("Hello, World! <1>\n");
(gdb) next
Hello, World! <1>
16              printf("Hello, World! <2>\n");
(gdb) next
Hello, World! <2>
18              printf("Hello, World! <3>\n");
(gdb) continue
Continuing.
Hello, World! <3>
[Inferior 1 (process 5228) exited normally]
(gdb) quit
 
برای راهنمایی بیشتر اینجا رو بخونید.
و این بود داستان دیباگ کردن . . .