Visual Studio 2017期望在函数名称中添加额外的下划线

时间:2017-12-13 13:29:32

标签: c++ visual-studio-2017 static-libraries linker-errors static-linking

我有来自第三方的静态库和标题。这些函数在标题中声明为extern "C",它们将在库中导出 - 我使用dumpbin /exports library.lib进行了检查。

尝试使用库时,我包含了标题,并将库添加到Linker-> Input。代码编译,但它没有链接,因为链接器需要为库中定义的函数添加额外的下划线。例如,如果在标题中我有:

extern "C"
{
    int serialInit();
}

dumpbin告诉我:

Exports
   ordinal    name
         6    serialInit

并且链接器给了我:

error LNK2019: unresolved external symbol _serialInit referenced in function _main

你知道为什么Visual Studio期望在函数名中加上额外的下划线吗?关于如何解决这个问题的任何想法?

0 个答案:

没有答案