2017-01-23 2 views
0

Ich arbeite an mlpack-Bibliothek (C++ Machine Learning Library). Ich folgte den Schritten keon hier: building mlpack, aber ich habe den folgenden Fehler in cmd, wenn ich den letzten Schritt erreicht, die mlpack baut:Ich kann mlpack nicht bauen?

-- 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) 

Antwort

1

Sie haben die Armadillo-Installation verkorkste müssen, um genauer zu sein , Sie haben das Gürteltier nicht angegeben.

Nach this detailliertere Anweisung, Punkt 10:

Geben Sie den Pfad der Bibliotheken, dll und Setup einig Definition, die Details bei here

So finden können, können Sie versuchen, und fügen Sie diese Zeilen zu Ihrem mlpack des 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")

+0

Hallo A salle, ich habe nicht diese "vc2015_build/bin/vc2015_x86_amd64/release"? – Avrahem

+0

Allerdings habe ich "set (ARMADILLO_INCLUDE_DIR" C: \ Benutzer \ Avrahim \ Documents \ Visual Studio 2015 \ Projekte \ armadillo-7.600.2 \ include ")" zu cmakelist und immer noch den gleichen Fehler! – Avrahem

+0

Hallo, es bedeutet, dass Sie falsche Pfade angegeben haben, betrachten [this] (https://github.com/mlpack/mlpack/issues/511). Sie können Folgendes tun: 1. Stellen Sie sicher, dass AR..INCLUDE_DIR die benötigte config.hpp und alle anderen Armadillo-Header enthält. 2. Stellen Sie sicher, dass AR ..._LIBRARY der Pfad zur dynamischen Bibliothek ist, d. e. * .dll in deinem Fall Die Jungs von Github (der Link oben) hatten ein Gespräch darüber und sie haben es gehackt. Wenn Sie damit nicht weiterkommen, versuchen Sie, das Gürteltier auf andere Weise zu installieren. Wenn das nicht möglich ist, können Sie auch die Gürteltier-Betreuer um Hilfe bitten. Viel Glück! – Asalle