2011-07-01 96 views
0

嘿所以我有點困惑爲什麼,在MSVS ++ 2010中,當所有頭文件和cpp文件都在靜態庫文件靜態庫項目在我的情況。爲什麼你必須鏈接庫和設置包含目錄

我用cmake製作了靜態庫項目,並且我被告知將它設置爲的源文件與我現在告訴的做相同的包含目錄...似乎我有2個相同的CPP和頭文件..除了靜態地包含在我的sollution中...爲什麼?

+0

有些語句在問題中有點困惑:你說'2是同樣的cpp和頭文件'。這是否意味着你在一個目錄中有A.cpp和A.hpp,而在另一個目錄中有它們的重複? – sashang

回答

3

由於VS ++在抽象底層實現時並未完全隱藏它。

包含目錄和庫針對進程的不同階段,這些階段通常由不同的程序處理。由預處理程序包含目錄,由鏈接程序包含庫。這些程序現在被稱爲(或?)VC++的一部分,但它的界面仍然顯示了底層結構。

有些系統允許通過使用編譯指示標記源代碼中(因此在標題中)所需的庫。那些有幾個缺點:

  • 非標準

  • 你可以通過另一個不容易的替代品庫(說調試/儀表/釋放,單線程/多線程,...)

+0

什麼是'VS ++'? – Mehrdad

+0

@Mehrdad,Visual Studio我想 - 我只是複製了OP的縮寫。 – AProgrammer

+0

顯然它不存在(「Visual Studio ++」?),但我想這使它成爲OP的錯,而不是你的... – Mehrdad

2

頭文件告訴你你打電話的功能。

靜態庫包括代碼你打電話的功能,而不是有關如何給他們打電話。

相關問題