在Debug模式下,Qt用的運(yùn)行時(shí)庫為
多線程調(diào)試DLL(/MDd)
VC提供的一個(gè)小工具便可以查看庫中目標(biāo)模塊指定的默認(rèn)庫,這就是dumpbin.exe。運(yùn)行下面這個(gè)命令
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
上面藍(lán)色的說明就是
多線程調(diào)試DLL(/MDd)
然后在輸出中找那些"Linker Directives"引導(dǎo)的信息,你一定會(huì)發(fā)現(xiàn)每一處這樣的信息都會(huì)包含若干個(gè)類似"-defaultlib:XXXX"這樣的字符串,其中XXXX便代表目標(biāo)模塊指定的缺省庫名。
知道了第三方庫指定的默認(rèn)標(biāo)準(zhǔn)庫,再用合適的選項(xiàng)編譯我們的應(yīng)用程序,就可以避免LNK2005和LNK1169鏈接錯(cuò)誤。喜歡IDE的朋友,你一樣可以到 "Project屬性" -> "C/C++" -> "代碼生成(code generation)" -> "運(yùn)行時(shí)庫(run-time library)" 項(xiàng)下設(shè)置應(yīng)用程序的默認(rèn)標(biāo)準(zhǔn)庫版本
只要project用了qt的庫,Debug下就得設(shè)置成多線程調(diào)試DLL(/MDd),這個(gè)project鏈接的其他庫也需要統(tǒng)一成這個(gè)
posted on 2007-07-25 04:09
七星重劍 閱讀(4907)
評論(3) 編輯 收藏 引用 所屬分類:
PL--c/c++ 、
C++ lib -- Qt