我在 cygwin 下使用python,现在我需要安装 xgboost 。
当我在windows中使用xgboost时。我首先使用 mingw 制作 libxgboost.dll ,然后使用python setup.py install
成功安装。
但是在cygwin中,我需要的是 libxgboost.so 。所以我一步一步地遵循steps of xgboost doc。
当我在cygwin中制作时,错误会引发:
fopen64 not declared
我不确定如何避免这种情况并启用fopen64 ...
如何在cygwin环境下构建和安装xgboost?不构建在windows下使用!!
===============================
跟着评论:
执行
时我遇到了这个错误
./python-package中的python setup.py install
Traceback (most recent call last):
File "setup.py", line 19, in <module>
LIB_PATH = libpath['find_lib_path']()
File "xgboost/libpath.py", line 45, in find_lib_path
'List of candidates:\n' + ('\n'.join(dll_path)))
__builtin__.XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you install compilers and run build.sh in root path?
List of candidates:
/home/gaoben/xgboost/python-package/xgboost/libxgboost.so
/home/gaoben/xgboost/python-package/xgboost/../../lib/libxgboost.so
/home/gaoben/xgboost/python-package/xgboost/./lib/libxgboost.so
顺便说一句..
在win中,是否有类似Linux的工具使开发更容易?
我选择了cygwin,因为配置开发env很容易...
例如在apt-cyg的帮助下..
答案 0 :(得分:0)
fopen64在32位上定义,允许64位操作。但是在cygwin 64位上它应该被fopen取代。
添加一些
#if defined(__x86_64__)
#define fopen64 fopen
#endif
in
./dmlc-core/src/io/local_filesys.cc
./dmlc-core/src/io/single_file_split.h
./rabit/include/rabit/internal/utils.h
将为cygwin构建lib / libxgboost.dll。