错误LNK2019:函数“private:void __cdecl”中引用的未解析的外部符号khpu

时间:2013-08-19 08:04:16

标签: c++ kdb

我从https://github.com/KxSystems/kdb/tree/master/w64添加了c.obj - #pragma comment(lib,“c.obj”)

但我收到此错误

\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

我在谷歌尝试了一切,但似乎没有任何效果。

2 个答案:

答案 0 :(得分:0)

#pragma comment lib不接受目标文件,只接受库。我看到你有一个c.lib文件,我认为这是你需要用pragma指令包含的库文件,所以把它改成#pragma comment( lib, "c.lib")

答案 1 :(得分:0)

Microsoft documentation中有人说:

#pragma comment( lib, "commenstring" )
  

<强> LIB

     

将库搜索记录放在目标文件中。此注释类型必须附带 commentstring 参数,其中包含您希望链接器搜索的库的名称(可能还有路径)。

它搜索库而不是目标文件。

您应该有一个.lib文件包含在此pragma指令中。

应该是这样的:

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