Posted on 30-10-2009
Filed Under (技术) by waterlin

在 Windows 下安装好 MinGW 后,不可能不用 GDB 来调试代码吧?

要给 MinGW 配上 GDB 很简单,只要从 MinGW 的下载列表里下载 GDB 的安装文件,安装到 MinGW 的安装目录就可以了。

原创文章,如转载请注明:转载自细节之锤 [ http://blog.WaterLin.org/ ]

Copyright © WaterLin.org. All rights reserved.

(0) Comments    Read More   
Posted on 07-04-2009
Filed Under (技术) by waterlin

如果要在 Windows 下写界面的话,有许多的 C++ 界面库,例如 VC++ 里自带的 MFC 库。但是,如果使用了这些库,当你要把你的界面程序移植到其它平台,那将是一件非常痛苦的过程。QT 是一个非常优秀的 C++ 界面库,跨平台、架构好、易使用。现在就简单介绍一下怎么在 Windows 下用 MinGW 和 MSYS 来编译 QT 程序。

1) 安装 MinGW 和 MSYS

具体如何安装 MinGW 和 MSYS,可以参见 Windows 下 MinGW 的安装与使用MSYS的使用与界面配置这两篇文章。

2) 安装 Qt 库

下载相应的安装文件,一路安装就 OK 了。安装完 Qt 后,在 Windows 系统的环境变量里添加 Qt 的路径,我这里是:

C:\Qt\4.4.3\bin

这样就可以在 cmd 里的任何位置使用 Qt 的命令了。

3) 把 Hello World 这段代码拷进去,Qt 的帮助文件里有:

#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPushButton hello("Hello world!");
    hello.show();
    return app.exec();
}

为方便编译,可以把这段代码的文件单独保存到一个文件夹里。

4) 用 qmake 来新建工程

qmake -project
qmake

在目标代码的文件夹里运行上面的两个命令,第一个命令会生成一个 QTHello.pro 的文件,第二个命令 qmake 会根据这个 .pro 文件来创建平台相关的 makefile 文件。

5) 在 MSYS 里跑 make 这个命令进行编译

如果编译顺利的话,就会在这个文件夹下面新建 debug 和 release 这两个子文件夹,里面放的是你 make 后生成的可执行文件。

(1) Comment    Read More   
Posted on 06-01-2009
Filed Under (技术) by waterlin

说到使用MSYS这样的命令行终端方式,大家一定觉得还不是那么方便。因为这里不能够复制、粘贴。但你错了,在MSYS里复制粘贴也很容易。

复制:选择你要复制的部分,然后鼠标左键点一下,就可以了。容易吧?

粘贴:只需用shift+鼠标左键,就可以直接将剪贴板内的文字粘贴进来了。

(1) Comment    Read More   
Posted on 05-01-2009
Filed Under (技术) by waterlin

如果在系统中使用 MinGW 的话,用 MSYS 作为 Windows 的 cmd 会比较方便。

MSYS 提供了一个模拟的 bash 环境,当然,其中包含了基本的 bash 命令,比如 ls 等。除了基本的 bash 命令外,它还提供了用 bash 的方式来运行 Windows 的程序。当你不清楚在 MSYS 里运行的某个命令的目录在哪里的时候,你可以用 which 这个命令来查询。通过 which 这个命令,你也可以判断出这个命令是 MSYS bash 里的命令,还是你安装在 Windows 里的程序。

利用 MSYS 可以基本代替 cmd 的日常使用。

MSYS 的安装很简单,下载安装文件,一路安装下去就可以了。在提示你是否安装有 MinGW 的时候,你根据你的实际情况填写即可。

MSYS 默认的颜色、字体配置十分的丑陋,可以通过

C:\msys\1.0\msys.bat

这个文件来修改,即安装路径下的 msys.bat 文件。

修改 MSYS 的终端字体、颜色等属性,找到表述和下面这一行相类似的地方:

start rxvt -backspacekey -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-12 -tn msys -geometry 80×25 -e /bin/sh –login -i

把这里面的属性值根据你的喜好来改,就可以美化出一个更加漂亮的终端窗口了:

start rxvt -backspacekey -sl 2500 -fg white -bg black -sr -fn Courier-bold-14 -tn msys -geometry 100×40 -e /bin/sh –login -i

这些属性值都可以随便自己设定,不过这一行一定要作为一行来保存!

(3) Comments    Read More   
Posted on 04-01-2009
Filed Under (技术) by waterlin

MinGW 提供了一个编写 Windows 应用程序的完整开源工具包。

1) MinGW的安装

MinGW的安装,其实非常简单。

因为手动安装有着更多的灵活性,所以这里重点说一下手动安装的步骤。安装 MinGW 至少需要四个包:

* binutils
* gcc-core
* mingw-runtime
* w32api

把这些包下载下来,放到 C:\MinGW 目录下(当然,放到哪里都一样),然后在 Windows 的 cmd 里,用下面的命令解压出来:

C:\MinGW> gzip -d -c binutils-2.17.50-20060824-1.tar.gz | tar x
C:\MinGW> gzip -d -c gcc-core-3.4.5-20060117-3.tar.gz | tar x
C:\MinGW> gzip -d -c mingwrt-3.15.1-mingw32-dev.tar.gz | tar x
C:\MinGW> gzip -d -c w32api-3.12-mingw32-dev.tar.gz | tar x
C:\MinGW> set path=C:\MinGW\bin;%path%

其实各个包的目录结构都是一样的,所以,解压后的目录结构仍然为一样的。其它的包也可以采用这样的方法来处理。只是要知道,我们解压是需要把这几个包混合起来,而不要只是习惯性的分别解压到一个文件夹里!

这个时候,最好推荐用命令行的方式来解压,不容易出错;如果系统没有装 gzip 或是类似的软件,可以用 Cygwin 来解压。

最后一行命令是添加 path 到环境变量里,如果你经常使用,需要把这个变量永久的添加到 path 变量里。

当然,你可以根据你的需要选择更多的包,例如说 gcc-g++ for C++、gcc-objc for Objective C、gcc-g77 for Fortran 77、gcc-java for Java 或 gcc-ada for Ada。如果需要这些包的话,只需要在上面的命令里多解压一个包即可。

2) MinGW的使用

现在我们可以直接在 Windows cmd 里来使用 Gcc 之类的命令来编译程序了。

比如说下面这个 C 程序:

#include <stdio.h>

int main(int argc, char **argv)
{
    printf ("Start to use MinGW");
    return 0;
}

假如你想从 hello.c 生成一个在终端模式下的可执行文件 hello.exe。只要直接用 gcc 编译器进行编译就行了:

gcc -c hello.c

这个命令把 hello.c 编译成一个目标文件 hello.o,然后用下面的方法生成一个可执行文件 hello.exe:

gcc -o hello hello.o

事实上,作为一种选择,你可以使用下面的命令把编译和链接放到一步中完成:

gcc -o hello hello.c

下面是一个简单的 c++ 程序的代码示例,复制并粘贴到一个叫 hello.cpp 的文件中试试看:

#include <iostream>
int main(int argc, char **argv)
{
    std::cout << "Start to use MinGW to compile C++" << std::endl;
    return 0;
}

对于 c++ 程序来说,可以使用 g++ 来编译和链接:

g++ -c hello.cpp
g++ -o hello hello.o

对于 gcc、g++ 及其他编译器的使用,可以查询各自的手册以获得更多的帮助。

(1) Comment    Read More