You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Conan构建Arrow配方时如何为CMake设置ARROW_RUNTIME_SIMD_LEVEL选项

问题原因

官方提供的Arrow Conan配方没有将ARROW_RUNTIME_SIMD_LEVEL暴露为Conan配置选项,也没有默认读取同名环境变量传递给CMake构建流程,因此直接通过-e参数设置环境变量无法生效。

解决方案

方案1:透传CMake变量(快速测试用,无需修改配方)

根据你使用的Conan版本选择对应命令:

  • Conan 2.x:通过conf配置直接传递CMake变量到构建流程
conan install .. --build=arrow -c tools.cmake.cmaketoolchain:variables="ARROW_RUNTIME_SIMD_LEVEL=NONE"
  • Conan 1.x:通过CMAKE_ARGS环境变量传递参数
conan install .. --build=arrow -e CMAKE_ARGS="-DARROW_RUNTIME_SIMD_LEVEL=NONE"

方案2:自定义Arrow配方(长期使用更可控)

如果需要频繁调整该配置,可以自定义Arrow的Conan配方,将SIMD级别暴露为标准选项:

  1. 新建自定义Arrow配方conanfile.py:
from conan import ConanFile
from conan.tools.cmake import CMake

class ArrowCustomRecipe(ConanFile):
    name = "arrow"
    # 替换为你实际使用的Arrow版本号
    version = "x.x.x"
    options = {
        "runtime_simd_level": ["NONE", "SSE4_2", "AVX2", "AVX512", "MAX"]
    }
    default_options = {
        "runtime_simd_level": "MAX"
    }

    def build(self):
        cmake = CMake(self)
        # 将Conan选项映射为Arrow的CMake配置项
        cmake.definitions["ARROW_RUNTIME_SIMD_LEVEL"] = self.options.runtime_simd_level
        cmake.configure()
        cmake.build()
  1. 执行构建时直接指定选项即可:
conan install .. --build=arrow -o arrow:runtime_simd_level=NONE

验证方法

构建时查看CMake输出日志,确认ARROW_RUNTIME_SIMD_LEVEL的取值已更新为你设置的NONE即可。

内容的提问来源于stack exchange,提问作者JACH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 19:48:02