gpt4 book ai didi

windows - 如何在 Windows 上通过 Python 以编程方式为 CMake 配置编译器?

转载 作者:可可西里 更新时间:2023-11-01 10:48:02 27 4
gpt4 key购买 nike

我有一个 python 构建脚本,我正在使用它来构建许多通过 Windows 上的 CMake 配置的项目。以前,我们使用 MSVC 构建这些项目,一切都很好。我现在想尝试通过这些 python 脚本将 ICC 合并到构建中。如有必要,我可以直接在 UI 中选择 native 编译器,但我更愿意以编程方式完成所有操作。

问题是,它因语法错误而失败,或者只是没有注意 cmake 选项。

我可以设置:

"CMAKE_CXX_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe",
"CMAKE_C_COMPILER:PATH":"C:/Program Files (x86)/Intel/Composer XE 2013/bin/intel64/icl.exe"

这是 cmakeItems 数组的一部分,然后将其馈送到生成中:

generate(x86Generator, cmakeItems, osName, buildTarget)

其他选项是通过命令行开关设置的(对于 x86generatorbuildTarget)或默认设置(即,在中检测到 osName脚本本身)。

在尝试任何事情之前,我会在我运行过的命令行提示符下运行它

iclvars intel64

在 icc bin 目录中以确保正确配置所有 icc 变量,我可以在命令行中键入 icl 并确认它在路径中。

运行上面的代码意味着 C 编译器仍然是默认的 msvc 编译器。

我也试过运行:

set(CMAKE_C_COMPILER_INIT icl)
set(CMAKE_CXX_COMPILER_INIT icl)

但是这在 icl 部分给我一个语法错误。我认为这可能是一个路径问题,但正在做:

set(CMAKE_C_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")
set(CMAKE_CXX_COMPILER_INIT "C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64\icl")

还给我一个语法错误。

那么我如何通过调用 cmake 的 python 脚本以编程方式设置 C/CXX 编译器?

最佳答案

在命令行上,您通过环境变量 CCCXX 指定编译器。我猜您需要正确准备 cmake 命令的环境,并且您不应该更改 CMakeLists.txt 内部结构。

例如

import subprocess
subprocess.Popen('CC=%s CXX=%s cmake ../path/to/src' %('icc','icpc'))

关于windows - 如何在 Windows 上通过 Python 以编程方式为 CMake 配置编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804525/

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