在安装 mlpack 时找不到 <execinfo.h>

can not find <execinfo.h> when setup mlpack

本文关键字:execinfo gt 安装 lt 找不到 mlpack      更新时间:2023-10-16

我尝试在cygwin中安装mlpack,我已经安装了犰狳,但是遇到了以下问题:

运行 cmake 后./我运行 make 命令,这是过程:

$ make
Scanning dependencies of target mlpack_headers
Moving header files to include/mlpack/
[ 0%] Built target mlpack_headers
Scanning dependencies of target mlpack
[ 0%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/dists/discrete_distribution.cpp.o
[ 1%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/dists/gaussian_distribution.cpp.o
[ 2%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/dists/laplace_distribution.cpp.o
[ 3%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/kernels/epanechnikov_kernel.cpp.o
[ 4%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/kernels/pspectrum_string_kernel.cpp.o
[ 5%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/math/lin_alg.cpp.o
[ 6%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/math/random.cpp.o
[ 6%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/aug_lagrangian/aug_lagrangian_test_functions.cpp.o
[ 7%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/lbfgs/test_functions.cpp.o
[ 8%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/lrsdp/lrsdp.cpp.o
[ 9%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/lrsdp/lrsdp_function.cpp.o
[ 10%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/sgd/test_function.cpp.o
[ 11%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/tree/cosine_tree/cosine_tree.cpp.o
[ 12%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/tree/mrkd_statistic.cpp.o
[ 12%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/util/cli.cpp.o
[ 13%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/util/cli_deleter.cpp.o
[ 14%] Building CXX object src/mlpack/CMakeFiles/mlpack.dir/core/util/log.cpp.o
/home/Administrator/mlpack-1.0.11/mlpack-1.0.11/src/mlpack/core/util/log.cpp:24:24: 致命错误:execinfo.h:No such file or directory
#include <execinfo.h>

编译中断。
src/mlpack/CMakeFiles/mlpack.dir/build.make:425: recipe for target 'src/mlpack/CMakeFiles/mlpack.dir/core/util/log.cpp.o' failed
make[2]: * [src/mlpack/CMakeFiles/mlpack.dir/core/util/log.cpp.o] Error 1
CMakeFiles/Makefile2:119: recipe for target 'src/mlpack/CMakeFiles/mlpack.dir/all' failed
make[1]: * [src/mlpack/CMakeFiles/mlpack.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: * [all] Error 2

我不知道如何处理这个问题。

Cygwin的gnulib不提供execinfo.h,可能是由于与底层(Windows)系统的兼容性问题。

gnulib文档中:

某些平台上缺少此头文件:Mac OS X 10.3,FreeBSD 6.0,NetBSD 5.0,OpenBSD 3.8,Minix 3.1.8,AIX 5.1,HP-UX 11,IRIX 6.5,OSF/1 5.1,Solaris 10,Cygwin,mingw,MSVC 9,Interix 3.5,BeOS。

您可能想尝试像CaptureStackBackTrace这样的WinAPI函数。