boost python的CMake target_link_库找不到.lib,但变量${python_libraries}指向它

boost python的CMake target_link_库找不到.lib,但变量${python_libraries}指向它,cmake,boost-python,Cmake,Boost Python,我正在使用一个简单的CMake(3.17.3)项目,通过vcpkg(2020.02.04-nohash)在windows 10机器上使用VSCode(1.46.0)检查我的boost python(1.73)安装。CMake文件是 cmake_minimum_required(VERSION 3.5) find_package(PythonLibs 3.8 REQUIRED) find_package(Boost COMPONENTS python38 REQUIRED) set(CMAKE_

我正在使用一个简单的CMake(3.17.3)项目,通过vcpkg(2020.02.04-nohash)在windows 10机器上使用VSCode(1.46.0)检查我的boost python(1.73)安装。CMake文件是

cmake_minimum_required(VERSION 3.5)

find_package(PythonLibs 3.8 REQUIRED)
find_package(Boost COMPONENTS python38 REQUIRED)
set(CMAKE_SHARED_MODULE_PREFIX "")
add_library(hello_ext MODULE hello_ext.cpp)

target_link_libraries(hello_ext ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
target_include_directories(hello_ext PRIVATE ${Boost_LIBRARIES} ${PYTHON_INCLUDE_DIRS})
生成此文件时遇到的错误是
链接:致命错误LNK1104:无法打开文件“python38.lib”[E:\code\python\u starter\build\hello\u ext.vcxproj]

${PYTHON_LIBRARIES}
变量是
optimized:/SD/Programming/C++/vcpkg/installed/x64 windows/lib/python38.libdebugE:/SD/Programming/C++/vcpkg/installed/x64 windows/debug/lib/python38_d.lib
,手动检查确认python38.lib是该变量假定的位置

我被难住了
target\u link\u库(hello\u ext${Boost\u libraries}${PYTHON\u libraries})
似乎找不到python38.lib,但它在变量
${PYTHON\u libraries}

我觉得我错过了一些非常明显的东西。我对cmake很陌生,所以请对我放松点

***编辑:如果我“硬编码”到python.lib的链接,项目将生成

#target_link_libraries(hello_ext ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
target_link_libraries(hello_ext E:/SD/Programming/C++/vcpkg/installed/x64-windows/lib/python38.lib ${Boost_LIBRARIES})

构建很好。

我想我已经找到了解决方案。根据
find_包(需要PythonLibs 3.8)
查找相关python环境变量的方法已弃用,需要替换为
find_包(Python组件解释器开发)
这样,
target\u include\u目录中的大写字母将从
${PYTHON\u LIBRARIES}
宏更改为
${PYTHON\u LIBRARIES}