[mlpack] why is ARMA_64BIT_WORD disabled ?

Julien Dorval dorvaljulien at gmail.com
Fri Apr 24 11:17:50 EDT 2015


Hello everyone,

I am completely new in the MLPACK community, I'm trying to get it to 
work for the moment, I'm particularly interested in the EMST. I tried a 
bit by myself, but I'd rather ask competent people instead of breaking 
things on my own. I managed to get cmake what it wanted, but the 
compilation stops at:

    dorval at zoidberg:~/peoples_codes/mlpack/mlpack-master/build: make
    [  0%] Updating arma_config.hpp (if necessary)
    [  0%] Built target mlpack_arma_config
    Moving header files to include/mlpack/
    [  0%] Built target mlpack_headers
    [  1%] Building CXX object
    src/mlpack/CMakeFiles/mlpack.dir/core/dists/discrete_distribution.cpp.o
    In file included from /usr/include/armadillo:48:0,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core/arma_extend/arma_extend.hpp:29,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/prereqs.hpp:50,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core.hpp:150,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.hpp:11,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.cpp:7:
    _/usr/include/armadillo_bits/compiler_setup.hpp:191:111: note:
    #pragma message: WARNING: compiler is in C++11 mode, but it has
    incomplete support for C++11 features;__
    __/usr/include/armadillo_bits/compiler_setup.hpp:192:86: note:
    #pragma message: WARNING: if something breaks, you get to keep all
    the pieces__
    __/usr/include/armadillo_bits/compiler_setup.hpp:193:93: note:
    #pragma message: WARNING: To forcefully prevent Armadillo from using
    C++11 features,__
    __/usr/include/armadillo_bits/compiler_setup.hpp:194:90: note:
    #pragma message: WARNING: #define ARMA_DONT_USE_CXX11 before
    #include <armadillo>_
    In file included from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core.hpp:167:0,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.hpp:11,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.cpp:7:
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core/dists/gaussian_distribution.hpp:34:42:
    _erreur: both ‘const’ and ‘constexpr’ cannot be used here__
    _make[2]: ***
    [src/mlpack/CMakeFiles/mlpack.dir/core/dists/discrete_distribution.cpp.o]
    Erreur 1
    make[1]: *** [src/mlpack/CMakeFiles/mlpack.dir/all] Erreur 2
    make: *** [all] Erreur 2


Ok, so I tried to solve this myself by adding

    #define ARMA_DONT_USE_CXX11

before :

    #include <armadillo>


In build/include/mlpack/core/arma_extend/arma_extend.hpp  and 
src/mlpack/core/arma_extend/arma_extend.hpp


Now the compilation does this:

    dorval at zoidberg:~/peoples_codes/mlpack/mlpack-master/build: make
    Scanning dependencies of target mlpack_headers
    Moving header files to include/mlpack/
    [  0%] Built target mlpack_headers
    Scanning dependencies of target mlpack_arma_config
    [  0%] Updating arma_config.hpp (if necessary)
    [  0%] Built target mlpack_arma_config
    Scanning dependencies of target mlpack
    [  3%] Building CXX object
    src/mlpack/CMakeFiles/mlpack.dir/core/dists/discrete_distribution.cpp.o
    In file included from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/prereqs.hpp:54:0,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core.hpp:150,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.hpp:11,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.cpp:7:
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core/util/arma_config_check.hpp:26:21:
    note: #pragma message: mlpack was compiled with ARMA_64BIT_WORD, but
    you are compiling wit
    hout ARMA_64BIT_WORD.  This will almost certainly cause irreparable
    disaster.  Either enable ARMA_64BIT_WORD in your application which
    is using mlpack, or, recompile mlpack against a version of Arma
    dillo which has ARMA_64BIT_WORD disabled.
    In file included from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core.hpp:167:0,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.hpp:11,
                      from
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/core/dists/discrete_distribution.cpp:7:
    /home/dorval/peoples_codes/mlpack/mlpack-master/src/mlpack/../mlpack/core/dists/gaussian_distribution.hpp:34:42:
    erreur: both ‘const’ and ‘constexpr’ cannot be used here
    make[3]: ***
    [src/mlpack/CMakeFiles/mlpack.dir/core/dists/discrete_distribution.cpp.o]
    Erreur 1
    make[2]: *** [src/mlpack/CMakeFiles/mlpack.dir/all] Erreur 2
    make[1]: *** [src/mlpack/methods/emst/CMakeFiles/emst.dir/rule] Erreur 2
    make: *** [emst] Erreur 2


I'm using armadillo 5.0 which I understand has ARMA_64BIT_WORD enabled 
by default. Why wasn't MLPACK compiled with ARMA_64BIT_WORD ? Am I not 
actually compiling mlpack right now ?

Any help would be greatly appreciated, thanks !

Cheers,

-- 
Julien Dorval
---------------------------------------
Doctorant 2e année en Astrophysique
Observatoire Astronomique de Strasbourg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack/attachments/20150424/72d262fc/attachment.html>


More information about the mlpack mailing list