您可以使用 #pragma comment(lib...) Microsoft c + + 中指定連結器選項

文章翻譯 文章翻譯
文章編號: 153901 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

註解 pragma 可讓使用者插入在物件的檔案或可執行檔的註解。Lib 規範可以讓使用者將這個註解傳遞給連結器指定額外的程式庫時使用此物件模組連結。有些使用者會使用 lib 註解 pragma,若要新增連結器選項,以及程式庫名稱,例如:
   #pragma comment(lib, "MSVCRT -VERBOSE")
				
這一行,Visual C++ 下 2.x,會傳遞字串給連結器一樣,導致加入的 /VERBOSE 的連結器選項,以及 MSVCRT。LIB 程式庫。這個行為未指定要使用這種方式。編譯器不會放入引號註解字串,所以空格會分隔文字。

在 Visual C++ 4。x ,並將更新版本中,編譯器正確放引號註解字串,因而造成上述的程式碼,以產生下列錯誤:
連結: 嚴重錯誤 LNK1104: 無法開啟檔案"MSVCRT-VERBOSE.lib"

解決方案

使用下列的新 pragma 來指定連結器選項:
#pragma comment(linker, "<linker options>")
				

狀況說明

這種行為是經過設計規劃。

其他相關資訊

若要重現這個問題的範例程式碼:

// Compile options needed: none
// Compile the code in Visual C++ 4.x or later
// test.c

#pragma comment(lib,"MYLIBRARY -VERBOSE")

void main(void)
{
}
				
您會收到下列錯誤訊息:
連結: 嚴重錯誤 LNK1104: 無法開啟檔案"MYLIBRARY-VERBOSE.lib"

?考

如需有關 #pragma 指示詞的詳細資訊,請參閱下列 MSDN 網站:
Pragma 指示詞

屬性

文章編號: 153901 - 上次校閱: 2013年10月29日 - 版次: 5.0
這篇文章中的資訊適用於:
  • Microsoft Visual C++ 4.0 Standard Edition
關鍵字:?
kbcompiler kbprb kbusage kbmt KB153901 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:153901
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com