2013-08-19 58 views
1

我加c.obj從https://github.com/KxSystems/kdb/tree/master/w64 - 的#pragma評論(LIB, 「c.obj」)錯誤LNK2019:解析外部符號khpu在函數引用「私人:無效__cdecl

但我收到此錯誤

\3rdParty\kdb\c.obj : warning LNK4003: invalid library format; library ignored 

5>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 

error LNK2019: unresolved external symbol k referenced in function "public: virtual void __cdecl... 

error LNK2019: unresolved external symbol ktd referenced in function "private: void __cdecl ... 

error LNK2019: unresolved external symbol khpu referenced in function "private: void __cdecl ... 

fatal error LNK1120: 3 unresolved externals 

我在谷歌那裏什麼都試過了,但似乎沒有任何工作。

回答

0

Microsoft documentation據說:

#pragma comment(lib, "commenstring") 

LIB

會在對象文件庫中的搜索記錄。此評論類型必須附帶一個評論字符串參數,其中包含您希望鏈接程序搜索的庫名稱(以及可能的路徑)

它搜索的庫不是目標文件。

您應該有一個.lib文件包含此pragma指令。

它應該是這樣的:

#pragma comment(lib, "c.lib") 
+0

我試過c.lib,然後我得到一個錯誤 - >找不到c.dll,即使它與c.lib – user2256532

+0

@ user2256532在同一個文件夾中。在執行時我得到這個錯誤。將c.dll放入二進制文件夾中。 –

+0

是的..錯誤在執行期間..二進制文件夾在哪裏? – user2256532

0

#pragma comment lib不接受對象文件,只有庫。我看到你有一個c.lib文件,我認爲是庫文件需要包含在雜注指令中,所以將其更改爲#pragma comment(lib, "c.lib")

+0

我試過c.lib,然後我得到一個錯誤 - > c.dll沒有發現即使是在同一個文件夾中c.lib – user2256532

+0

您應該檢查該c.dll位於爲可執行文件配置的路徑中(不幸的是,我沒有Visual Studio提供詳細信息)。但是,此路徑與輸入庫路徑不同。 –

相關問題