阻止我将 VS2010 中的静态库正确链接到我的 .dll 的原因是什么
What are the reasons stopping me from correctly linking a static library in VS2010 to my .dll
我正在尝试 link 将 VS2010 中的静态库添加到我的 .dll 中,但出于某种原因,它无法解析所需的符号。我已经像添加任何库一样添加了库,但仍然不行。我也完全按照它们应该的方式调用符号,我正在复制其他人的有效实现,所以它们不会错。我可能缺少某种设置吗?我已经完成了 lib.exe /dumpall,一切看起来都井井有条。很郁闷。
查看link到库后,我看到源都是C源文件,头文件none有extern "C"
函数声明。
这意味着如果您将头文件包含到您的项目中,函数声明将具有 mangled names,名称(符号)不再与库中的名称(符号)匹配。
要么你应该用 extern "C"
声明你自己使用的函数,要么用 extern "C" { ... }
.
包装头文件的包含
我正在尝试 link 将 VS2010 中的静态库添加到我的 .dll 中,但出于某种原因,它无法解析所需的符号。我已经像添加任何库一样添加了库,但仍然不行。我也完全按照它们应该的方式调用符号,我正在复制其他人的有效实现,所以它们不会错。我可能缺少某种设置吗?我已经完成了 lib.exe /dumpall,一切看起来都井井有条。很郁闷。
查看link到库后,我看到源都是C源文件,头文件none有extern "C"
函数声明。
这意味着如果您将头文件包含到您的项目中,函数声明将具有 mangled names,名称(符号)不再与库中的名称(符号)匹配。
要么你应该用 extern "C"
声明你自己使用的函数,要么用 extern "C" { ... }
.