在Debug模式下,Qt用的運行時庫為
多線程調試DLL(/MDd)
VC提供的一個小工具便可以查看庫中目標模塊指定的默認庫,這就是dumpbin.exe。運行下面這個命令
dumpbin /DIRECTIVES my.lib
輸出如下:
D:\Qt\4.3.0\lib>dumpbin /DIRECTIVES qtmaind.lib
Microsoft (R) COFF/PE Dumper Version 7.10.6030
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file qtmaind.lib
File Type: LIBRARY
Linker Directives
-----------------
/DEFAULTLIB:"uuid.lib"
/DEFAULTLIB:"uuid.lib"
/DEFAULTLIB:"msvcprtd"
/DEFAULTLIB:"MSVCRTD"
/DEFAULTLIB:"OLDNAMES"
Summary
8 .bss
2F .data
8833 .debug$S
7C .debug$T
72 .drectve
B5 .rdata
60 .sxdata
22BC .text
2D2 .text$x
54C .xdata$x
上面藍色的說明就是
多線程調試DLL(/MDd)
然后在輸出中找那些"Linker Directives"引導的信息,你一定會發(fā)現(xiàn)每一處這樣的信息都會包含若干個類似"-defaultlib:XXXX"這樣的字符串,其中XXXX便代表目標模塊指定的缺省庫名。
知道了第三方庫指定的默認標準庫,再用合適的選項編譯我們的應用程序,就可以避免LNK2005和LNK1169鏈接錯誤。喜歡IDE的朋友,你一樣可以到 "Project屬性" -> "C/C++" -> "代碼生成(code generation)" -> "運行時庫(run-time library)" 項下設置應用程序的默認標準庫版本
只要project用了qt的庫,Debug下就得設置成多線程調試DLL(/MDd),這個project鏈接的其他庫也需要統(tǒng)一成這個
posted on 2007-07-25 04:09
七星重劍 閱讀(4896)
評論(3) 編輯 收藏 引用 所屬分類:
PL--c/c++ 、
C++ lib -- Qt