2012-02-06 66 views
0

最近,我收到了一些奇怪的鏈接器錯誤。VC++目錄代理奇怪

我一直被教導說有兩種方式與圖書館合作:

通過

Project Properties > VC++ Directories > Include Directories 
Project Properties > VC++ Directories > Library Directories 

或通過

Project Properties > C/C++ > General > Additional Include Directories 
Project Properties > Linker > General > Additional Library Directories 
Project Properties > Linker > Input > Additional Dependencies 

最近,有時當我使用VC++目錄的方式,我收到一個鏈接器錯誤,指出有些函數沒有定義。當我將函數定義所在的庫文件添加到其他依賴項時,它突然發現它。 但是,如果你使用VC++目錄,通常你不應該使用額外的依賴關係,對吧?

這已經發生了好幾次了,讓我不知所措。它在過去的項目中工作得很好,但現在不再了。有時VC++的方式甚至可以在另一臺PC上運行,但不是在我的電腦上。 我一直與VS2010合作,並且仍然與VS2010合作。

有沒有人有線索怎麼回事?

+0

VS在SMB上工作時似乎表現出非常不尋常的行爲。 有沒有可能使用的任何目錄位於網絡共享上? – 2012-02-06 18:16:47

+0

@Charles不,謝謝。 – xcrypt 2012-02-06 18:35:28

回答

1

即使您指定了其他包含目錄,Visual Studio也不會自動嘗試鏈接生成項目時存在的所有庫文件。您必須採取額外的步驟將庫文件名添加到其他依賴項列表中。其他包含目錄僅有助於避免將整個文件路徑寫入其他依賴項列表中。

修改附加依賴項列表的替代方法是使用#pragma指令。具體來說,使用

#pragma comment("[lib file name]") 

這將指示鏈接器鏈接該文件在您的版本。

+0

澄清它。謝謝! 但是,我在這裏討論VC++目錄。這些被稱爲「包含目錄」,沒有「額外」。要麼你明白我的問題是錯的,要麼你犯了一個錯字。 – xcrypt 2012-02-06 18:35:54