使用 cmake 和 vcpkg (Windows) 在 Visual Studio 上的 pybind11 项目中调试构建时出现 LNK1104 错误

问题描述 投票:0回答:1

我在Windows平台上使用CMake和VCPkg在Visual Studio上创建了一个PyBind11项目。我正在 Python 中公开 C++ 功能。

我分别通过 vcpkg 安装了 pybind11_x64-windowspython3.10_x64-windows,并分别通过 Visual Studio 2019 Professional 安装了 CMake3.24.1

我在项目的根目录中有必要的 CMakeLists.txt 文件。该项目在 Release 模式下正确构建,但在 Debug 模式下,我出现链接器错误:

LINK:致命错误LNK1104:无法打开文件“python310.lib”

我不明白,为什么Visual Studio在Debug模式下需要python310.lib而不是python310_d.lib。在 VisualStudio 中,当我检查“项目”->“属性”->“链接器”->“输入”->“附加依赖项”时,它正确指向 python310_d.lib

我在谷歌上发现这篇文章似乎在某种程度上相关:

https://discourse.paraview.org/t/debug-build-fail-cannot-open-file-python310-lib/9000

但似乎没有明确的解决方案。

这是 VCPkg/CMake/Python 中的错误还是其他错误?有没有人有办法解决这个问题?

cmake visual-studio-2019 pybind11 vcpkg
1个回答
0
投票

我在 python311 上遇到了同样的问题,并对此感到困惑。感谢您提供的链接,我明白这是因为自动链接,我添加

/NODEFAULTLIB: python313_d.lib
来抑制自动链接。

© www.soinside.com 2019 - 2024. All rights reserved.