十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LightGBM 用 MinGW 编译时 CMake 报 CMAKE_C_COMPILER not set 怎么处理

LightGBM 用 MinGW 编译时 CMake 报 CMAKE_C_COMPILER not set 怎么处理 LightGBM 用 MinGW 编译时 CMake 报 CMAKE_C_COMPILER not set 怎么处理【免费下载链接】LightGBMA fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.项目地址: https://gitcode.com/GitHub_Trending/li/LightGBM在 Windows 上用CMake MinGW从源码编译 LightGBM 时第一次执行cmake配置命令就可能中断并报出下面的错误CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage这是 CMake 配合 MinGW 使用时的一个已知问题不是你的编译器没装好。项目文档 docs/FAQ.rst 的 General LightGBM Questions 第 14 条给出了处理方式重新再执行一次同一条cmake命令绕过 CMake 的一次性中断或者把 CMake 升级到3.17.0 及以上版本。下文给出完整的处理路径和编译验证方式。前置条件按 docs/Installation-Guide.rst 的 Windows/MinGW-w64 一节编译前需要安装Git for WindowsCMakeMinGW-w64然后在终端中获取源码并进入项目目录git clone --recursive https://gitcode.com/GitHub_Trending/li/LightGBM cd LightGBM处理 CMAKE_C_COMPILER not set先执行标准配置命令cmake -B build -S . -G MinGW Makefiles如果报出CMAKE_C_COMPILER not set, after EnableLanguage通常伴随CMAKE_CXX_COMPILER not set, after EnableLanguage二选一处理再运行一次同样的命令。FAQ 称这是最简单的解决办法因为该错误是 CMake 的一次性中断one time stopper重跑即可绕过。如果第一次运行已经生成了build目录可以直接再次执行上面这条cmake -B build -S . -G MinGW Makefiles。升级 CMake 到至少 3.17.0。如果你希望以后不再遇到这个中断可以换装 3.17.0 或更高版本的 CMake。FAQ 中注明该问题可在上游 issue lightgbm-org/LightGBM#3060 中看到更多讨论。配置这一步通过后继续执行构建cmake --build build -j4验证编译结果构建成功后.exe和.dll文件会出现在LightGBM/源码根目录下不是子目录。确认这两个文件已生成即说明本次 MinGW 编译完成。相关的另一个提示sh.exe was found in your PATH安装指南对 MinGW 流程有一条 Note如果配置阶段遇到sh.exe was found in your PATH错误处理方式与上面的中断类似——把cmake -B build -S . -G MinGW Makefiles再执行一次或者在 CMake 参数中追加-DCMAKE_SHCMAKE_SH-NOTFOUND例如cmake -B build -S . -G MinGW Makefiles -DCMAKE_SHCMAKE_SH-NOTFOUND注意这是sh.exe提示对应的处理方式与CMAKE_C_COMPILER not set是两个不同的报错现象文档分别给出了各自的对策。关于 MinGW 的已知限制文档同时给出了两条与编译器选择相关的说明值得在决定继续用 MinGW 前了解docs/FAQ.rst 第 4 条在 Windows 上编译 LightGBMVisual Studio 表现最好docs/FAQ.rst 第 8 条在核心数很多、数据集很大的 Windows 场景下CPU 利用率偏低时Visual Studio 可能比 MinGW快约 10 倍尤其在很大的树的情况下。也就是说MinGW 路径能完成编译并产出可用的可执行文件与库如果你的目标是在多核系统上跑大数据集训练文档建议改用 Visual Studio 或 VS Build Tools 构建。【免费下载链接】LightGBMA fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.项目地址: https://gitcode.com/GitHub_Trending/li/LightGBM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表