gpt4 book ai didi

c++ - 使用 VS2012 编译库时符号名称无效

转载 作者:行者123 更新时间:2023-11-30 04:09:49 25 4
gpt4 key购买 nike

我用 Visual Studio 2012(portaudioopus)编译库,当我尝试在 QT 项目中使用它们时告诉我他没有找到符号。

但是,当我删除 .lib 文件时,我遇到另一个错误,告诉我该库不存在,所以该库很好找到。

当执行 dumpbin.exe/SYMBOLS portaudio.lib 时,我缺少符号,但前面有一个 _!

我不明白,第一次在 Windows 上操作库,这让我发疯!

在我的 .pro 中我有:

win32:LIBS += -L$$PWD
win32:LIBS += -lopus
win32:LIBS += -lporaudio

最佳答案

问题是您混合了 32 位和 64 位。

由于 __cdecl 调用约定,带有下划线前缀的符号名称恰好在 32 位库中。 64 位库的情况并非如此,该理论已过时。

如果您希望构建一个 32 位项目,构建 32 位 portaudio 和 opus,并相应地为您的项目配置 32 位。

如果您希望构建 64 位项目,请使用 64 位库依赖项,即构建 portaudio 和 opus。然后确保您自己的项目也有 64 位项目配置。

关于c++ - 使用 VS2012 编译库时符号名称无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20942244/

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