的Visual Studio 2010專業舞臺
我的問題
我有一個解決方案叫做解決方案答:我有項目, 'A'(靜態包含內部和外部頭文件和源文件的庫)和'b'(可執行文件以查看是否可以使用'a'功能)。
我打算用靜態庫在其他可執行項目「C」,這是在不同解決 C.我做了什麼「一」功能如下:
1)增加了靜態庫文件夾(相對路徑)到包括目錄部分在我的'c'項目屬性(包括調試和發佈配置)。
2)檢查intellisense messenger,看看進口是否成功。
在我構建解決方案C之前,一切都很好。然而,一旦我建立它彈出LNK2019錯誤,因爲有一個功能foo()
似乎沒有得到解決。該(報告的)函數簽名是:
extern void foo(params);
extern void bar(void);
只是提醒讀者,foo(params)
功能在靜態庫 'A' 的解決方案A.
我得到的錯誤信息是:
error LNK2001: unresolved external symbol _foo
error LNK2001: unresolved external symbol _bar
MY digagnosis到目前爲止
明顯的診斷將是:
1)報告的函數簽名似乎與我的信號不匹配(我在Visual Studio中使用真人查找和替換工具進行了檢查;沒有不匹配)。
2)檢查是否有包含阻擋它的警衛(我再次檢查過,但沒有任何問題會導致此問題)。
我需要提及的一件事就是exec。解決方案'C'中的項目b可以很容易地在靜態庫a中使用foo
和bar
。這可能是因爲他們在相同的解決方案,並通過簡單地添加項目目錄包括目錄在項目b屬性將完成這項工作。但是,當我嘗試在不同的解決方案中使用它時,它正在崩潰。我做了一個完整的清理和重建解決方案,但沒有運氣。
我開始認爲它無法在相同的頭文件中找到定義並且感到困惑。儘管定義位於同名源文件中,但它仍可能會產生混淆。
我很努力地找到沒有完全修改的解決方案。有誰知道該怎麼辦?