map файл проливает свет на многое после работы линковщика

Первый способ добавить генерацию map файла по итогам выполнения линковщика (link.exe) это тупо добавить в Makefile к переменной LFLAGS примерное такое содержание :

/MAP:i_am_mapfile.map

И потом из батника запускать сборку проекта примерно так :

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
nmake clean
nmake
nmake install
pause

Второй способ будет автоматически добавлять файл map для каждого проекта.

Ищем файл qmake.conf и прописываем опции линковщика (link.exe) например так:

QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO /MAP:--info--release--.map
QMAKE_LFLAGS_DEBUG      = /DEBUG /MAP:--info--debug--.map

И теперь каждый раз вы будете получать map файл для каждого проекта.


Чем интересен map файл?

В map файле хорошо видно например как собираются библиотеки статически или динамически:

Тут видно , что функции ssleay32 , например, цепляются динамически .

 0002:0000025c       __imp__SSL_CIPHER_description 004ec25c     ssleay32:SSLEAY32.dll
 0002:00000260       __imp__SSL_CTX_free        004ec260     ssleay32:SSLEAY32.dll
 0002:00000264       __imp__SSL_CTX_new         004ec264     ssleay32:SSLEAY32.dll
 0002:00000268       __imp__SSL_free            004ec268     ssleay32:SSLEAY32.dll

Ниже видно ,что QtNetwork код собирается статически:

 0002:00080084       ??_C@_01GFHCPBMG@C?$AA@    0056c084     QtNetwork:qsslcertificate.obj
 0002:0008008c       ??_7QTcpSocket@@6B@        0056c08c     QtNetwork:qtcpsocket.obj
 0002:000800f8       ??_C@_01CLKCMJKC@?5?$AA@   0056c0f8     QtNetwork:qsslsocket_openssl.obj

Ниже видно ,что библиотеки времени исполнения RT собирается статически:


 0002:000892d0       __indefinite               005752d0     LIBCMT:_87disp_.obj
 0002:000892da       __piby2                    005752da     LIBCMT:_87disp_.obj
 0002:00089308       __DEFAULT_CW_in_mem        00575308     LIBCMT:_common_.obj
 0002:0008930a       __pi_by_2_to_61            0057530a     LIBCMT:_common_.obj
 0002:0008cc90       __infinity                 00578c90     LIBCMT:_87tran_.obj