/Yl (插入偵錯程式庫的 PCH 參考)

/Yl 選項會在先行編譯標頭檔中產生唯一的符號,而這個符號的參考會插入到使用先行編譯標頭檔的所有物件檔中。

語法

/Yl
/Yl 名稱
/Yl-

引數

name
選擇性名稱,做為唯一符號的一部分。

-
虛線 (-) 會明確停用 /Yl 編譯器選項。

備註

/Yl 編譯器選項會在使用 /Yc 選項所建立的先行編譯標頭檔中建立唯一的符號定義。 使用 /Yu 編譯器選項,自動插入包含先行編譯標頭的所有檔案中,此符號的 參考。 當 /Yc 用來建立先行編譯標頭檔時 ,預設會啟用 /Yl 選項。

/Yl 名稱 選項可用來在先行編譯標頭檔中建立可識別的符號。 編譯器會 使用 name 引數做為所建立裝飾符號名稱的一部分,類似于 __@@_PchSym_@00@...@name ,其中省略號 (...) 代表唯一編譯器產生的字元字串。 如果省略 name 引數,編譯器會自動產生符號名稱。 通常,您不需要知道符號的名稱。 不過,當您的專案使用一個以上的先行編譯標頭檔時, /Yl 名稱 選項可能有助於判斷哪些物件檔使用哪個先行編譯標頭檔。 您可以使用 名稱 作為搜尋字串,在傾印檔案中尋找符號參考。

/Yl- 會停用預設行為,而且不會在先行編譯標頭檔中放置識別符號。 包含此先行編譯標頭的已編譯檔案不會取得一般符號參考。

未指定 /Yc ,任何 /Yl 選項都不會有任何作用,但如果指定,它必須符合指定 /Yc 傳遞的任何 /Yl 選項。

如果您使用 /Yl- /Yc /Z7 選項來建置先行編譯標頭檔,偵錯資訊會儲存在用來建立先行編譯標頭檔的來源檔案中,而不是個別的 .pdb 檔案。 如果這個物件檔案是程式庫的一部分,則如果用來建立先行編譯標頭檔的來源檔案未定義任何符號本身, LNK1211錯誤或 LNK4206 警告可能會發生在使用此程式庫的組建和先行編譯標頭檔。 連結器可能會從連結中排除物件檔,以及相關聯的偵錯資訊,當程式庫用戶端中未參考任何物件檔時。 若要解決此問題,請使用 /Yc 建立先行編譯標頭檔時,指定 /Yl (或移除 /Yl- 選項)。 這可確保包含偵錯資訊的程式庫的物件檔會在組建中連結。

如需先行編譯標頭的詳細資訊,請參閱:

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [ 其他選項 ] 方塊中新增 /Yl 名稱 編譯器選項。 選取 [確定] 儲存您的變更。

若要以程式方式設定這個編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法