在LightGBM源码中新建文件夹build,然后在build目录下运行命令
cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:\local\boost_1_82_0 -DBOOST_LIBRARYDIR=C:\local\boost_1_82_0\lib64-msvc-14.3 ..
报错
错误原因:
miniconda3\Library\lib\cmake\中boost版本是1.78.0,但C:\local\中boost版本是1.82.0(命令中设置的boost-root地址也是1.82.0这个)
故障排除:
重新下载1.78.0的boost_1_78_0-msvc-14.3-64.exe,并且命令改为
cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:\local\boost_1_78_0 -DBOOST_LIBRARYDIR=C:\local\boost_1_78_0\lib64-msvc-14.3 ..
在python中使用lightgbm:
执行上述代码后执行cmake --build . --target ALL_BUILD --config Release
,LightGBM项目中会多出来一个Release文件夹,里面有lib_lightgbm.dll等若干文件。然后将LightGBM项目中python-package文件夹下的lightgbm文件夹(这个在源码中就有,不是新生成的)复制到依赖包文件夹中(xxx\venv\Lib\site-packages),并在依赖包文件夹中新建compile文件夹,将Release文件夹中lib_lightgbm.dll拷贝到compile文件夹下。完成后在代码中使用import lightgbm即可。
新问题及解决方案:
由于代码必须要2.2.3版本的LightGBM,而GitHub上拉下来的源码默认是最新4.0.0版本的,运行代码失败,于是重新拉2.2.3版本源码,再次cmake,用故障排除后的命令,结果又发生了截图所示问题。可惜我才疏学浅,解释不了原因,但我参考boost-1.70.0 build issues解决了问题:修改之前的cmake命令为cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:\local\boost_1_78_0 -DBOOST_LIBRARYDIR=C:\local\boost_1_78_0\lib64-msvc-14.3 -DBoost_NO_BOOST_CMAKE=ON ..