我正在研究mlpack库(C ++机器学习库)。我在这里遵循了keon的步骤:building mlpack,但是当我到达构建mlpack的最后一步时,我在cmd中遇到以下错误:

-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24213.1
-- The CXX compiler identification is MSVC 19.0.24213.1
-- Check for working C compiler: F:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: F:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: F:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: F:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:51 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:64 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at CMake/FindArmadillo.cmake:326 (message):
ARMADILLO_INCLUDE_DIR-NOTFOUND/armadillo_bits/config.hpp not found! Cannot
determine what to link against.
Call Stack (most recent call first):
CMakeLists.txt:189 (find_package)

最佳答案

具体来说,您必须弄乱了犰狳的安装,没有指定犰狳的包含目录。

根据this更详细的说明,第10点:


  指定库,dll的路径并设置一些定义,有关详细信息,请参见here


因此,您可以尝试将以下行添加到mlpack的CMakeLists.txt中:

set(ARMADILLO_LIBRARY "C:/Users/yyyy/Qt/3rdLibs/armadillo/armadillo-5.600.2/vc2015_build/bin/vc2015_x86_amd64/release")set(ARMADILLO_INCLUDE_DIR "C:/Users/yyyy/Qt/3rdLibs/armadillo/armadillo-5.600.2/include")

关于c++ - 我无法建立mlpack?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41807194/

10-12 19:33