2016-06-13 4 views
0

Я использую питона под Cygwin и теперь мне нужно установить xgboost.Compile libxgboost.so сбой при установке xgboost под Cygwin из win10-64bit

Когда я использую xgboost в окнах. Сначала я использую mingw, чтобы сделать libxgboost.dll, а затем используйте python setup.py install для успешной установки.

Но в cygwin мне нужен libxgboost.so. Поэтому я следую за шагом steps of xgboost doc.

И когда я сделать в Cygwin, ошибка возникает:

fopen64 not declared 

Я не уверен, как избежать этого и дать fopen64 ...

И как построить и установить xgboost в среде cygwin? НЕ строится для использования под окнами!

===============================
Последовал комментарий: я бегу на эту ошибку, когда выполнить
python setup.py install в ./python-package

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 

BTW ..
в выигрыше, есть ли Linux-подобных инструментов, что делает развивающиеся легче?
Я выбираю cygwin, потому что легко настраивать конфигурацию env ...
например. с помощью apt-cyg.

ответ

0

fopen64 определяется на 32 бит, чтобы разрешить 64-битную операцию. Однако на 64-битном процессоре Cygwin его следует заменить на fopen.

добавить некоторые

#if defined(__x86_64__) 
#define fopen64 fopen 
#endif 

в

./dmlc-core/src/io/local_filesys.cc 
./dmlc-core/src/io/single_file_split.h 
./rabit/include/rabit/internal/utils.h 

и Lib/libxgboost.dll будет построен для Cygwin.

+0

Ну, я хочу использовать xgboost в python ** cygwin **, а не в окнах. Следуйте своему методу, я успешно сгенерировал libxgboost.dll, но для этого требуется ** libxgboost.so **. Можно ли создать файл * .so под cygwin и использовать? – bengxy

+0

общий доступ к cygwin/windows - * .dll не * .so. Почему вы думаете, что вам нужно libxgboost.so? – matzeri

+0

Я обновляю вопрос выше. когда я запускаю 'python setup install'. Он говорит, что нужно libxgboost.so – bengxy