链接错误 - 后缀@

时间:2015-12-22 17:03:12

标签: c++ windows hyperlink lnk2019 suffix

我有两个基于C ++的lib文件,一个来自公司,另一个是我自己使用公司提供的源代码编译的。我正在使用Windows 7 x64并使用makefile编译库。

当我尝试使用我编译的库链接程序时,会产生错误(LNK 2019:未解析的外部符号),抱怨它无法在库中找到函数。

我发现的问题是链接器正在寻找的函数的名称是@ -suffix,但是我编译的库没有该后缀。如果我使用公司提供的库,它有@ -suffix并且工作正常。所以我想知道@ -suffix的含义以及如何编译库以使其具有该后缀。

感谢阅读,我们将非常感谢您的帮助。

PS。 Belows是dumpbin输出的初始部分,其中上部是来自公司的库,而下部是我遵守的部分:

公司图书馆

Microsoft (R) COFF/PE Dumper Version 12.00.30723.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file motor.lib

File Type: LIBRARY

Archive member name at 8: /               
5602DBD6 time/date Wed Sep 23 18:05:26 2015
         uid
         gid
       0 mode
   29F93 size
correct header end

    5179 public symbols

    51FA4 _S826_WriteReg@12
    51FA4 __imp__S826_WriteReg@12
    52010 _S826_WriteBridge@24
    52010 __imp__S826_WriteBridge@24
    5207E _S826_WatchdogWaitCancel@4
    5207E __imp__S826_WatchdogWaitCancel@4

我编译的图书馆

Microsoft (R) COFF/PE Dumper Version 12.00.30723.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file motor.lib

File Type: LIBRARY

Archive member name at 8: /               
56796705 time/date Tue Dec 22 15:06:45 2015
         uid
         gid
       0 mode
   2A45B size
correct header end

    5252 public symbols

    52368 S826_WriteReg
    52368 __imp_S826_WriteReg
    523D0 S826_WriteBridge
    523D0 __imp_S826_WriteBridge
    5243A S826_WatchdogWaitCancel
    5243A __imp_S826_WatchdogWaitCancel

0 个答案:

没有答案