2017-05-22 71 views
15

mam postępować zgodnie z następującą samouczek, aby zainstalować pakiet python xgboost ciągu Cygwin64:execinfo.h brakuje podczas instalowania xgboost w Cygwin

https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_XGBoost_For_Anaconda_on_Windows

Ale podczas wykonywania make w katalogu dmlc-core mam następujące błędy:

[email protected] ~/xgboost/dmlc-core 
$ mingw32-make -j4 
g++ -c -O3 -Wall -Wno-unknown-pragmas -Iinclude -std=c++0x -fPIC -DDMLC_USE_HDFS=0 -DDMLC_USE_S3=0 -DDMLC_USE_AZURE=0 -msse2 -o line_split.o src/io/line_split.cc 
g++ -c -O3 -Wall -Wno-unknown-pragmas -Iinclude -std=c++0x -fPIC -DDMLC_USE_HDFS=0 -DDMLC_USE_S3=0 -DDMLC_USE_AZURE=0 -msse2 -o recordio_split.o src/io/recordio_split.cc 
g++ -c -O3 -Wall -Wno-unknown-pragmas -Iinclude -std=c++0x -fPIC -DDMLC_USE_HDFS=0 -DDMLC_USE_S3=0 -DDMLC_USE_AZURE=0 -msse2 -o input_split_base.o src/io/input_split_base.cc 
g++ -c -O3 -Wall -Wno-unknown-pragmas -Iinclude -std=c++0x -fPIC -DDMLC_USE_HDFS=0 -DDMLC_USE_S3=0 -DDMLC_USE_AZURE=0 -msse2 -o io.o src/io.cc 
src/io/line_split.cc:1:0: aviso: se descarta -fPIC para el objetivo (todo el código es independiente de posición) 
// Copyright by Contributors 
^ 
src/io.cc:1:0: aviso: se descarta -fPIC para el objetivo (todo el código es independiente de posición) 
// Copyright by Contributors 
^ 
src/io/input_split_base.cc:1:0: aviso: se descarta -fPIC para el objetivo (todo el código es independiente de posición) 
// Copyright by Contributors 
^ 
src/io/recordio_split.cc:1:0: aviso: se descarta -fPIC para el objetivo (todo el código es independiente de posición) 
// Copyright by Contributors 
^ 
In file included from include/dmlc/io.h:14:0, 
       from src/io/line_split.cc:2: 
include/dmlc/./logging.h:18:22: error fatal: execinfo.h: No such file or directory 
compilación terminada. 
Makefile:83: recipe for target 'line_split.o' failed 
mingw32-make: *** [line_split.o] Error 1 
mingw32-make: *** Waiting for unfinished jobs.... 
In file included from src/io/input_split_base.cc:2:0: 
include/dmlc/logging.h:18:22: error fatal: execinfo.h: No such file or directory 
compilación terminada. 
In file included from include/dmlc/io.h:14:0, 
       from src/io.cc:4: 
include/dmlc/./logging.h:18:22: error fatal: execinfo.h: No such file or directory 
compilación terminada. 
Makefile:83: recipe for target 'input_split_base.o' failed 
mingw32-make: *** [input_split_base.o] Error 1 
Makefile:83: recipe for target 'io.o' failed 
mingw32-make: *** [io.o] Error 1 
In file included from include/dmlc/./io.h:14:0, 
       from include/dmlc/recordio.h:12, 
       from src/io/recordio_split.cc:2: 
include/dmlc/././logging.h:18:22: error fatal: execinfo.h: No such file or directory 
compilación terminada. 
Makefile:83: recipe for target 'recordio_split.o' failed 
mingw32-make: *** [recordio_split.o] Error 1 

Dlaczego pojawia się ten błąd? Daj mi znać, jeśli potrzebujesz więcej informacji.

Odpowiedz

5

Możesz umieścić #undef DMLC_LOG_STACK_TRACE zaraz po jego definicji w linii 45 here. Zobacz przykład w tym gist.

execinfo.h jest dostępny tylko w systemie Linux, ale w tym projekcie służy tylko do debugowania i drukowania śledzenia stosu w systemie Linux. Jest tam a check dla Mingw w ich bazie kodu, nie wiem, dlaczego nie jest zdefiniowany (wyłączyli go, zobacz ten PR).

Powinieneś spróbować zmienić te linie i ponownie uruchomić make.

+0

Dzięki! Próbowałem usunąć te linie, ale wiem, że dostaję następujący błąd: https://pastebin.com/WSirnMNE – harrison4

+0

Och, widzę. Czy możesz przywrócić plik logging.h do stanu oryginalnego i umieścić '#undef DMLC_LOG_STACK_TRACE' zaraz po definicji w linii 45 [tutaj] (https://github.com/dmlc/dmlc-core/blob/29b0cbdeaa8ce5ed843bcdaf1edf42cb8952bba7/include/dmlc /base.h#L45)? Zobacz przykład w [tej istocie] (https://gist.github.com/vkotovv/0eb1e50d7e9dfef05e528bbafce8173a). Jestem prawie pewien, że to powinno działać w ten sposób. –

+1

Mogłem to wypróbować sam, ale teraz nie mam komputera z systemem Windows. Może jutro mógłbym spróbować zbudować te rzeczy .. –