2012-06-19 63 views
0

這個問題純粹是學術問題,所以下面只是一個例子;如果我在這一行前添加兩個斜槓如何「猜測」哪些庫缺失?

#pragma comment(lib, "../node-src/Release/node") 

我會得到一打鏈接錯誤。那麼不是真的打,但至少2-3線看起來像這樣

1>test.obj : error LNK2001: unresolved external symbol "public: static class 
v8::Local<class v8::String> __cdecl v8::String::New(char const *,int)" 
([email protected]@[email protected]@SA? 

現在我知道大多數的要求是在規格,但有沒有辦法知道哪些文件是真正的連接丟失?我的意思是,如果我要用常規包含替換#pragma指令,我應該採取哪些步驟?

回答

3

很簡單,答案是沒有簡單的方法可以告訴鏈接程序丟失了哪些文件。它所知道的是它搜索的是什麼樣的符號,而不是你需要包含的庫文件。最後,只要你告訴鏈接器在哪裏搜索它,你就可以在你想要的任何位置定義你喜歡的任何庫中的這些符號。

如果您有一堆潛在的庫,可以使用類似於Lib.exe as per this post on SO的東西來搜索匹配的符號,然後嘗試將鏈接器指向這些文件,但再次,無法讓鏈接器爲您找到此信息。

+0

幸運的是,我在問我應該採取哪些步驟,而不是如果鏈接器可以或不能直接告訴我。 –

+0

我告訴你,沒有可以採取的步驟 - 這不可能通過鏈接器。唯一能讓你關閉的東西,如果你有一堆潛在的庫文件,你可以使用像lib.exe之類的東西爲你列出符號(參見我的編輯)。 –