2016-08-24 4 views
0

MacBookにhomebrewを使用してPCLをインストールしました。私はCMakeLists.txtファイルを作成するためにコンパイルしたいコードもいくつか持っています。しかし、私はブーストライブラリに関するいくつかのエラーを取得します。PCLを使用したMacでのコンパイルエラーのエラー

私はエラーを取得:

/usr/local/include/boost/random/detail/polynomial.hpp:267:13: error: use of undeclared identifier 'sqr'; did you mean 'sqrt'? sqr(out, n);

私は、ファイルpolynomial.hppで見たとき、私は以下の機能を見ることができます:

原因となる関数呼び出しの上に宣言されている
static digit_t sqr(digit_t val) { 
    const std::size_t bits = std::numeric_limits<digit_t>::digits; 
    digit_t mask = (digit_t(1) << bits/2) - 1; 
    for(std::size_t i = bits; i > 1; i /= 2) { 
     val = ((val & ~mask) << i/2) | (val & mask); 
     mask = mask & (mask >> i/4); 
     mask = mask | (mask << i/2); 
    } 
    return val; 
} 

static void sqr(digit_t * val, std::size_t size) 
{ 
    const std::size_t bits = std::numeric_limits<digit_t>::digits; 
    digit_t mask = (digit_t(1) << bits/2) - 1; 
    for(std::size_t i = 0; i < size; ++i) { 
     digit_t x = val[size - i - 1]; 
     val[(size - i - 1) * 2] = sqr(x & mask); 
     val[(size - i - 1) * 2 + 1] = sqr(x >> bits/2); 
    } 
} 

を問題。

機能が存在しているようで、問題を引き起こすのはBoostライブラリのコードなので、どのように進むべきかわかりません。

Linuxでこのような問題は発生していませんが、これはPCL 1.7のためのものですが、これはPCL 1.8です。

/erik

答えて

0

ここでも同様の問題(Ubuntu 16.04、PCL 1.8)があります。エラーが

/usr/include/boost/random/detail/polynomial.hpp:190: error: macro "sqr" passed 2 arguments, but takes just 1 
static void sqr(digit_t * val, std::size_t size) 
               ^

は、それが関連していると考えています。

関連する問題