0

我知道很多人都問過這個問題,但是下面的提示似乎並沒有爲我工作。所以我想我會尋求幫助,因爲我明顯錯過了一些東西。Visual C++ 2008快速創建庫

我已經花了幾天的時間編寫一些使用boost庫的代碼,它允許我打開文本文件,將文本轉換爲可用的數據格式,並在完成後將文本保存爲文本文件用它。我特意將其構建爲可擴展來處理不同的數據類型(特別是我製作的任何對象或類),以便我可以將其作爲我的項目中的庫鏈接到其他庫中。

但是,即使在將它編譯爲lib並將lib的目錄添加到「其他包含目錄」後,每當我嘗試在庫中包含某個頭文件時,都會收到無法解析的外部錯誤。我也嘗試在其他依賴關係下放置它的直接路徑(以及只有庫名稱與目錄在其他包含目錄和附加庫目錄中設置的路徑。我也嘗試過,其中只有一個在時間和它仍然失敗)。

有什麼我失蹤了嗎?我怎樣才能編譯我想重複使用的代碼,並將其鏈接到新項目中,而無需每次都將cpp和h文件複製到我的解決方案中? DLL會更好/更容易工作嗎?如果是這樣,我該如何編譯它作爲一個DLL並鏈接到它?

感謝您閱讀這段文字。你可以提供的任何幫助都很好。

+0

您是否使用模板「處理不同的數據類型」?這些必須在頭文件中內聯定義,不能將實現移出到cpp中(除非事先知道您希望它們使用的所有類型) – Eugene

+0

告訴我們什麼是未解析的外部結構,如果它不明顯無論它們來自您的代碼還是提升。 –

+0

@Eugene,我已經建立了這樣一種方法,我可以創建一個子類,它的方法被構建爲響應特定的數據類型並以這種方式進行存儲。我只需要以孩子處理數據的方式修改一些東西。 – Legacyblade

回答

0

好的。雖然這不是我要去的確切解決方案,但我設法弄清楚了這一點。對於遇到這個問題的任何人來說,有一個很好的教程,解釋如何製作DLL文件並使用它們(至少在Windows上,沒有任何計算機使用備用操作系統來設置測試DLL)。你可以在這裏找到它。

http://programmingexamples.wikidot.com/blog:1

問題的要點是你還需要保持.h文件得心應手的副本在您的項目包括。 (我所做的是在我的C盤上創建一個目錄,其中包含我正在創建的庫,還有一個用於.lib文件的文件夾和.h文件的文件夾。)直接導入.h文件進入你的項目目錄或者將它添加到你的項目屬性(C++ - > General - > Additional Include Directories)。確保這一點,你鏈接到目錄,而不是文件本身。在鏈接器中,需要將.lib文件添加到「附加依賴項」部分(鏈接器 - >輸入 - >附加依賴項)。你可以把整個路徑放在這裏,或者你可以放上文件名,然後告訴程序在哪裏找到它所在的目錄(將目錄的路徑添加到鏈接器 - >常規 - >附加庫目錄)

希望這有助於任何其他人錯過了本能地理解其他人似乎理解的東西:P