gpt4 book ai didi

python - 用于 Win32 平台的 CMake find_package(需要 PythonInterp 3.7)

转载 作者:行者123 更新时间:2023-11-28 01:23:31 25 4
gpt4 key购买 nike

我有一些项目应该支持 Win32x64 平台。一些代码是由 python 脚本生成的。此脚本使用 python3 功能。

CMakeLists.txt 我有这样的东西:

find_package(PythonInterp REQUIRED)
if (CMAKE_CL_64)
set(MY_APP_PLATFORM "x64")
else()
set(MY_APP_PLATFORM "Win32")
endif()

add_custom_command(TARGET MyApp
PRE_BUILD
COMMAND ${PYTHON_EXECUTABLE} ${MyApp_ROOT}/generator.py -p ${MY_APP_PLATFORM }
WORKING_DIRECTORY ${PATH_GENERATED_SRC}
COMMENT "Generating code..."
VERBATIM
)

非常简单。

现在,当使用 x64 的项目时,一切都很好,但是当为 Win32 构建时(cmake 必须生成单独的项目)cmake 找到 python 2.7.2

以这种方式更改 CMakeLists.txt:

find_package(PythonInterp 3.7 REQUIRED)

导致cmake失败。

有没有办法修复它,还是我必须更正 pythons 脚本以使其与 python2 兼容?

或者我是否必须为 32 位和 64 位安装 python3 以涵盖这两个平台?

最佳答案

CMake 模块是您的 cmake 发行版中的 FindPython3.cmake

这应该有效:

find_package(Python3 COMPONENTS Interpreter)

add_custom_command(TARGET MyApp
PRE_BUILD
COMMAND ${PYTHON3_EXECUTABLE} ${MyApp_ROOT}/generator.py -p ${MY_APP_PLATFORM}
WORKING_DIRECTORY ${PATH_GENERATED_SRC}
COMMENT "Generating code..."
VERBATIM
)

它从 cmake 3.12 开始可用。

Documentation

关于python - 用于 Win32 平台的 CMake find_package(需要 PythonInterp 3.7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55046499/

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