gpt4 book ai didi

c - VS2012 静态库的一部分时未找到标识符

转载 作者:行者123 更新时间:2023-11-30 17:13:10 25 4
gpt4 key购买 nike

使用 VS2012 C/C++:

我创建了一个名为“libtools”的静态库并将其链接到我的项目。对 libtools 库中函数的调用按预期工作。

我创建了第二个名为“shunt”的静态库并将其链接到我的项目。但是,当我在分流中合并对函数的调用时,我收到 c3861“找不到标识符”

我以相同的方式将这两个库添加到我的项目中。我在框架和引用中添加了每个引用,并在 C/C++ 附加目录中添加了完整路径。

我该如何解决这个问题?

最佳答案

C++ 使用名为 name mangling 的东西当它创建符号名称时。这是必需的,因为符号名称必须包含完整的函数签名。当您使用 extern "C" 时,名称不会被破坏,并且可以从其他编程语言(例如 C)中使用。

您显然是用 C++ 创建分流库的,这意味着 shuntfunc 函数在通过编译器后实际上并不是这样命名的。由于使用该库的实际应用程序是用 C 语言编写的(根据标签和信息猜测),它无法找到 shuntfunc 符号,除非告诉 C++ 编译器不要破坏符号名称。

它适用于其他库可能是因为它也是用 C 语言编写的。

关于c - VS2012 静态库的一部分时未找到标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com