2013-06-21 105 views
5

當我在C++中使用非標準庫時,我必須在鏈接器 - >輸入 - >附加依賴項中添加庫名稱。但替代方案是寫Pragma評論C++

#pragma comment(lib , "library name") 

這兩種方法是完全一樣的嗎?

+9

第二個實際上只能在MSVC上工作。您仍然有這樣的好處,那就是隻要不支持它就會被忽略,但請注意,GCC至少會提醒您,只要您打開該文件即可。 – chris

+0

我認爲這個假設是「在windows msvc上」,或者至少應該是 – 4pie0

+0

這個問題應該重新標記以表明它是特定於MSVC的。雖然我不完全確定要使用哪個標籤。 –

回答

5

他們不是。

該編譯指示增加了一個defaultlib。該選項是鏈接器行的強制lib。

後者無論如何都會被處理,並且如果缺失則會出錯。 如果找不到,默認的lib將被默認忽略。如果使用「忽略默認庫」或「忽略特定默認庫」選項,即使它存在,也可以忽略它的使用。

+0

這很有趣。這可能會派上用場我想。 – chris

0

這些是做同樣事情的兩種方式。即編譯器告訴鏈接器要查找哪些庫。 #pragma註釋還有其他功能,例如將諸如編譯器信息或任何其他元數據的數據添加到對象文件。

#pragma comment是VC++特有的。