/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 開發環境中設定這個編譯器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。
在 [其他選項] 方塊中新增 /Yl名稱編譯程序選項。 選取 [確定] 儲存您的變更。
若要以程式方式設定這個編譯器選項
- 請參閱 AdditionalOptions。