VC 2008 Express编译QT程序时产生MAP文件

VC 2008 Express编译QT程序时产生MAP文件

MAP文件对于定位程序crash问题非常有用,一般情况下,我们总是希望能产生MAP文件以便将来出问题时好进行查找。

在VC 2008 Express中生成MAP文件比较简单,只需要修改工程属性中的link相关项即可。

可是在QT应用中,如何设置呢?这种情况下,是先使用qmake编译pro文件,然后使用VC的命令行方式编译程序,没有相应的VC工程进行设置。

我们可以修改QT在VC2008环境下的全局编译、链接开关。以QT4.6.2为例,假设qt安装在d:/qt/4.6.2目录下。

进入qt安装目录下的子目录: mkspecs\win32-msvc2008

用notepad打开该目录下的qmake.conf文件,找到QMAKE_LFLAGS项,将其修改为:

QMAKE_LFLAGS            = /NOLOGO /MAP /MAPINFO:EXPORTS

注意,全部都是需要大写格式。

修改完成后,重新qmake各pro工程文件并编译,就会在生成exe/dll/lib的同时,生成map文件。

上述方法修改的是QT全局的qmake连接标志,编译任何工程都会产生map文件。在实际应用中,我们可能只是希望部分工程产生map文件,这种情况下可以修改工程的pro文件,单独添加QMAKE_LFLAGS即可:

QMAKE_LFLAGS         += /MAP /MAPINFO:EXPORTS

Comments are closed.