當我在C++中使用非標準庫時,我必須在鏈接器 - >輸入 - >附加依賴項中添加庫名稱。但替代方案是寫Pragma評論C++
#pragma comment(lib , "library name")
這兩種方法是完全一樣的嗎?
當我在C++中使用非標準庫時,我必須在鏈接器 - >輸入 - >附加依賴項中添加庫名稱。但替代方案是寫Pragma評論C++
#pragma comment(lib , "library name")
這兩種方法是完全一樣的嗎?
他們不是。
該編譯指示增加了一個defaultlib。該選項是鏈接器行的強制lib。
後者無論如何都會被處理,並且如果缺失則會出錯。 如果找不到,默認的lib將被默認忽略。如果使用「忽略默認庫」或「忽略特定默認庫」選項,即使它存在,也可以忽略它的使用。
這很有趣。這可能會派上用場我想。 – chris
這些是做同樣事情的兩種方式。即編譯器告訴鏈接器要查找哪些庫。 #pragma註釋還有其他功能,例如將諸如編譯器信息或任何其他元數據的數據添加到對象文件。
#pragma comment是VC++特有的。
第二個實際上只能在MSVC上工作。您仍然有這樣的好處,那就是隻要不支持它就會被忽略,但請注意,GCC至少會提醒您,只要您打開該文件即可。 – chris
我認爲這個假設是「在windows msvc上」,或者至少應該是 – 4pie0
這個問題應該重新標記以表明它是特定於MSVC的。雖然我不完全確定要使用哪個標籤。 –