#12490·xgboost

[R 包] 在 clang + arm64 macOS 上出现编译器警告: 在编译期间未使用参数: '-msse2'

作者: jameslamb创建于 2026年8月20日更新于 2026年9月17日

□ 说明

在R包被从"autoconf"切换到CMake(#12416)后进行测试时,我发现"R CMD检查-as-cran"现在在苹果硅上提出1个警告(例如我的M2macbook).

页:1

  • 检查是否可以安装 " xgboost " 软件包... [181s/183s] 警告 发现了以下重大警告: crange: 警告: 编译过程中未使用的参数 : “- msse2 ” [- 未用- command- line- argument]

这个警告是无害的(它只是表示"你在非x86系统上使用了一面X86特有旗帜"),但事实上‘R CMD检查-as-cran ' 释放出‘WARNING'可能足以导致延迟向CRAN发布. 如果修补不太多复杂的话,就应该修好.

□ 可复制实例

控制台
$gt 干净 - dfX
Python - B 操作/script/test r  package.py -- task 构建
$ TEMP DIR=美元(mktemp-d)
$cp./xgboost 3.5.0.0.tar.gz "${TEMP DIR}"/ (中文(简体) ).
$ 推 “${TEMP DIR} ”
$R CMD 检查 -- -- as-cran./xgboost *.tar.gz
* 使用R版4.6.0(2026-04-24)
* 使用平台:arch64-Apple-darwin23
* 报告编写人:
Apple crang 版本 17.0.0 (clang-1700. 3.19.1)
GNU 福特兰(GCC) 14.2.0.
* 运行在:macOS Sonoma 14.4.1下
* 使用会话字符集: UTF-8
*当前时间:2026-08-20 03:35:09 UTC
* 使用 "-as-cran " 选项
. . . . . . . .
* 检查是否可以安装 " xgboost " 软件包... [181s/183s] 警告
发现了以下重大警告:
crange: 警告: 编译过程中未使用的参数 : “- msse2 ” [- 未用- command- line- argument]
详情见`/private/var/colders/6d/80svzp0d0z1dr414fgnvll6h000gn/T/tmp.Q5X4NeFmeo/xgboost.Rcheck/00install.out'。

这似乎是来自“Dmlc-core”。

页:1 [3%] 建 CXX 对象 dmlc-core/ CMakeFiles/dmlc.dir/src/config.cc.o crange: 警告: 编译过程中未使用的参数 : “- msse2 ” [- 未用- command- line- argument] [4%] 建 CXX 对象 dmlc-core/ CMakeFiles/dmlc.dir/src/data.cc.o crange: 警告: 编译过程中未使用的参数 : “- msse2 ” [- 未用- command- line- argument] 等诸相.


□ 注释

为什么不用一面 " Wno " 旗来压制它?

中央区域网政策不允许使用 " 未使用的命令 " 线来发布警告。 出自https://cran.r-project.org/web/packages/policy.html 页面存档备份,存于互联网档案馆.

>  包不应试图禁用编译器诊断,也不应删除共享对象中的符号等其他诊断信息.  

XGBoost在CRAN上用了很长一段时间,

我认为,切换到CMake意味着`dmlc-core'的编译器旗帜正在通过它的CMake。 在最近CRAN对XGBoost的检查中,我没有看到这个警告*(基于XGBoost 3.2.1.1):

* 所有检查:https://cran.r-project.org/web/checks/check results xgboost.html
* macOS arm64建筑:https://www.r-project.org/nosvn/R.check/r-oldrel-macos-arm64/xgboost-00install.html

□ 进取

* 固定在`dmlc-core' (https://GitHub.com/dmlc/dmlc-core/pul/722)中。
* [ ] 在此更新`dmlc-core' 子模块
. . . . . . .