国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
(轉(zhuǎn)帖)Visual C++ 編譯器選項(xiàng) /MD、/ML、/MT、/LD 區(qū)別 - 櫻空釋...

好久沒有更新日志了,最近收獲還是有的。。。。呵呵轉(zhuǎn)個(gè)帖子作為一個(gè)新的開始吧。

2009-5-31日今天是個(gè)有紀(jì)念意義的小日子啊,我決定減肥了,以前總是輕易的放縱自己,沒有動(dòng)力去完成這個(gè)被稱為女人需要為之奮斗一生的“光榮事件”---減肥。畢竟之前閑云野鶴的日子一個(gè)人,一杯水,一頓飽飯,一個(gè)淡然的日月,很瀟灑不需要為其他的東西煩心,畢竟只要自己覺得開心就可以了。戀愛了,逗逗也是沒有什么美丑觀念的人兒~,平平淡淡的生活認(rèn)認(rèn)真真的彼此依靠幸福對(duì)我們已經(jīng)足夠了,所以雖然周圍一片唏噓我還是依然默默地“膨脹”著,也許很多時(shí)候看到照片啊,或者讓背背啊,或者看到漂亮的衣飾啊,或者看到sexy的美女啊。。。會(huì)對(duì)自己體型的橫向發(fā)展有所顧慮和煩心,但是奈何天生的神經(jīng)大條,情緒樂觀,也都不了了之,而且對(duì)于能不能減下去一直沒有信心,所以日子也就這么過著了。也許您會(huì)覺得那5月31日我是不是受到什么沉重打擊了才會(huì)這么堅(jiān)定的想進(jìn)行這個(gè)事業(yè)呢~呵呵也不是~我一向就是這么隨性的一個(gè)人,突然想到了,也突然想嘗試了而已,也許這就是傳說中的頓悟吧,反正我是決定這么做了,別以為這樣的“決心”很無聊什么的,我會(huì)盡量從今天開始記錄下,我的減肥日記,一句話----有志者事竟成!

今天僅僅是一個(gè)開始,加油!SooLeal! 早上7:30分3圈小花園!預(yù)定晚上4圈~~^_^ 逗逗看我的咯~~

 

廢話完畢,以下轉(zhuǎn)帖~~

 

 

指定與你項(xiàng)目連接的運(yùn)行期庫

/MT多線程應(yīng)用程序

/Mtd多線程應(yīng)用程序(DEBUG)

/MD多線程DLL

/MDd多線程DLL(DEBUG)

前段時(shí)間編譯一個(gè)引用自己寫的靜態(tài)庫的程序時(shí)老是出現(xiàn)鏈接時(shí)的多個(gè)重定義的錯(cuò)誤,而自己的代碼明明沒有重定義這些東西,譬如:

LIBCMT.lib(_file.obj) : error LNK2005: ___initstdio already defined in libc.lib(_file.obj)

LIBCMT.lib(_file.obj) : error LNK2005: ___endstdio already defined in libc.lib(_file.obj)

LIBCMT.lib(_file.obj) : error LNK2005: __cflush already defined in libc.lib(_file.obj)

LIBCMT.lib(_file.obj) : error LNK2005: __iob already defined in libc.lib(_file.obj)

LIBCMT.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in libc.lib(osfinfo.obj)

LIBCMT.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in libc.lib(osfinfo.obj)

LIBCMT.lib(osfinfo.obj) : error LNK2005: __free_osfhnd already defined in libc.lib(osfinfo.obj)

LIBCMT.lib(osfinfo.obj) : error LNK2005: __get_osfhandle already defined in libc.lib(osfinfo.obj)

LIBCMT.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in libc.lib(osfinfo.obj)

LIBCMT.lib(tolower.obj) : error LNK2005: __tolower already defined in libc.lib(tolower.obj)

LIBCMT.lib(tolower.obj) : error LNK2005: _tolower already defined in libc.lib(tolower.obj)

等等。

所 以初步估計(jì)是編譯器的問題,通過網(wǎng)上搜索和查看msdn,原來是Visual C++ 編譯器選項(xiàng)的關(guān)于單線程或多線程運(yùn)行時(shí)例程的問題:我的那個(gè)靜態(tài)庫編譯時(shí)/ML單線程版本的,而引用它的程序是/MT多線程版本的,他們?cè)诰幾g分別講 libc.lib和LIBCMT.lib連接到各自的代碼中,估計(jì)libc.lib和LIBCMT.lib只是單線程與多線程的區(qū)別,基本代碼相差無幾, 所以會(huì)產(chǎn)生鏈接時(shí)重定義錯(cuò)誤;然后把編譯靜態(tài)庫的選項(xiàng)/ML改成/MT就沒事了。

要注意的是:/MD也是多線程版本的;被應(yīng)用的用戶鏈接庫 要和應(yīng)用者有相同的編譯選項(xiàng),/MD與/MT一起有時(shí)候會(huì)有錯(cuò)誤的,有時(shí)候就沒有,我試過這種情況;而/MD和/ML似乎是沒有問題的;/MT和/ML是 肯定會(huì)有問題的。有沒有其他情況就不清楚了,有興趣的可以測(cè)試一下,^_^

如果是代碼是用于多線程的,最好編譯成多線程版本的,否則可能會(huì)出現(xiàn)一些意想不到的問題。

編譯器選項(xiàng)設(shè)置(vc6):工程 -> 設(shè)置 -> C/C++ -> 工程選項(xiàng)   里可以修改

附:

下面是msdn關(guān)于Visual C++ 編譯器選項(xiàng)的說明:

這些選項(xiàng)選擇單線程或多線程運(yùn)行時(shí)例程,指示多線程模塊是否為 DLL,并選擇運(yùn)行時(shí)庫的發(fā)布版本或調(diào)試版本。

選項(xiàng) 說明

/MD 定義 _MT 和 _DLL 以便同時(shí)從標(biāo)準(zhǔn) .h 文件中選擇運(yùn)行時(shí)例程的多線程特定版本和 DLL 特定版本。此選項(xiàng)還使編譯器將庫名 MSVCRT.lib 放入 .obj 文件中。

用此選項(xiàng)編譯的應(yīng)用程序靜態(tài)鏈接到 MSVCRT.lib。該庫提供允許鏈接器解析外部引用的代碼層。實(shí)際工作代碼包含在 MSVCR71.DLL 中,該庫必須在運(yùn)行時(shí)對(duì)于與 MSVCRT.lib 鏈接的應(yīng)用程序可用。

當(dāng) 在定義了 _STATIC_CPPLIB (/D_STATIC_CPPLIB) 的情況下使用 /MD 時(shí),它將導(dǎo)致應(yīng)用程序通過靜態(tài)多線程標(biāo)準(zhǔn) C++ 庫 (libcpmt.lib) 而非動(dòng)態(tài)版本 (msvcprt.lib) 進(jìn)行鏈接,同時(shí)仍通過 msvcrt.lib 動(dòng)態(tài)鏈接到主 CRT。

/MDd 定義 _DEBUG、_MT 和 _DLL,以便從標(biāo)準(zhǔn) .h 文件中選擇運(yùn)行時(shí)例程的調(diào)試多線程特定版本和 DLL 特定版本。它還使編譯器將庫名 MSVCRTD.lib 放入 .obj 文件中。

/ML 使編譯器將庫名 LIBC.lib 放入 .obj 文件中,以便鏈接器使用 LIBC.lib 解析外部符號(hào)。這是編譯器的默認(rèn)操作。LIBC.lib 不提供多線程支持。

/MLd 定義 _DEBUG 并使編譯器將庫名 LIBCD.lib 放入 .obj 文件中,以便鏈接器使用 LIBCD.lib 解析外部符號(hào)。LIBCD.lib 不提供多線程支持。

/MT 定義 _MT, 以便從標(biāo)準(zhǔn)頭 (.h) 文件中選擇運(yùn)行時(shí)例程的多線程特定版本。此選項(xiàng)還使編譯器將庫名 LIBCMT.lib 放入 .obj 文件中,以便鏈接器使用 LIBCMT.lib 解析外部符號(hào)。創(chuàng)建多線程程序需要 /MT 或 /MD(或它們的調(diào)試等效選項(xiàng) /MTd 或 /MDd)。

/MTd 定義 _DEBUG 和 _MT。定義 _MT 會(huì)導(dǎo)致從標(biāo)準(zhǔn) .h 文件中選擇運(yùn)行時(shí)例程的多線程特定版本。此選項(xiàng)還使編譯器將庫名 LIBCMTD.lib 放入 .obj 文件中,以便鏈接器使用 LIBCMTD.lib 解析外部符號(hào)。創(chuàng)建多線程程序需要 /MTd 或 /MDd(或它們的非調(diào)試等效選項(xiàng) /MT 或 MD)。

/LD 創(chuàng)建 DLL。

將 /DLL 選項(xiàng)傳遞到鏈接器。鏈接器查找 DllMain 函數(shù),但并不需要該函數(shù)。如果沒有編寫 DllMain 函數(shù),鏈接器將插入返回 TRUE 的 DllMain 函數(shù)。

鏈接 DLL 啟動(dòng)代碼。

如果命令行上未指定導(dǎo)出 (.exp) 文件,則創(chuàng)建導(dǎo)入庫 (.lib);將導(dǎo)入庫鏈接到調(diào)用您的 DLL 的應(yīng)用程序。

將 /Fe 解釋為命名 DLL 而不是 .exe 文件;默認(rèn)程序名成為基名稱.dll 而不是基名稱.exe。

如果還未顯式指定 /M 選項(xiàng)之一,則將默認(rèn)運(yùn)行時(shí)庫支持更改為 /MT。

/LDd 創(chuàng)建調(diào)試 DLL。定義 _DEBUG。

警告    不要混合使用運(yùn)行時(shí)庫的靜態(tài)版本和動(dòng)態(tài)版本。在一個(gè)進(jìn)程中有多個(gè)運(yùn)行時(shí)庫副本會(huì)導(dǎo)致問題,因?yàn)楦北局械撵o態(tài)數(shù)據(jù)不與其他副本共享。鏈接器禁止在 .exe 文件內(nèi)部既使用靜態(tài)版本又使用動(dòng)態(tài)版本鏈接,但您仍可以使用運(yùn)行時(shí)庫的兩個(gè)(或更多)副本。例如,當(dāng)與用動(dòng)態(tài) (DLL) 版本的運(yùn)行時(shí)庫鏈接的 .exe 文件一起使用時(shí),用靜態(tài)(非 DLL)版本的運(yùn)行時(shí)庫鏈接的動(dòng)態(tài)鏈接庫可能導(dǎo)致問題。(還應(yīng)該避免在一個(gè)進(jìn)程中混合使用這些庫的調(diào)試版本和非調(diào)試版本)。

有關(guān)使用運(yùn)行時(shí)庫的調(diào)試版本的更多信息,請(qǐng)參見運(yùn)行時(shí)庫參考。

知識(shí)庫文章 Q140584 也討論如何選擇適當(dāng)?shù)?C 運(yùn)行時(shí)庫。

有關(guān) DLL 的進(jìn)一步討論,請(qǐng)參見 DLL。

在 Visual Studio 開發(fā)環(huán)境中設(shè)置此編譯器選項(xiàng)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VS中的 MD/MT設(shè)置
為什么會(huì)出現(xiàn)LNK2005"符號(hào)已定義"的鏈接錯(cuò)誤?
/nodefaultlib:"LIBCMT.lib"
你所不知道的C和C++運(yùn)行庫
VC運(yùn)行庫版本不同導(dǎo)致鏈接.LIB靜態(tài)庫時(shí)發(fā)生重復(fù)定義問題的一個(gè)案例分析和總結(jié)
MT、MTd、MD、MDd
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服