tmbdev / clstm

A small C++ implementation of LSTM networks, focused on OCR.
Apache License 2.0
821 stars 224 forks source link

which eigen version? #78

Closed WenchenLi closed 8 years ago

WenchenLi commented 8 years ago

Hi, Which eigen version is used? I have errors compiling with 3.2.8 `./tensor.h:39:10: fatal error: 'unsupported/Eigen/CXX11/Tensor' file not found

include <unsupported/Eigen/CXX11/Tensor>`

And after I go to https://github.com/RLovelett/eigen to get the unsupported/eigen/CXX11, there is just too many errors compiling:

`In file included from clstmfilter.cc:1: In file included from ./clstm.h:17: In file included from ./batches.h:6: In file included from ./tensor.h:39: In file included from /usr/local/include/eigen3/unsupported/Eigen/CXX11/Tensor:18: /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:292:36: error: unknown type name 'EIGEN_DEVICE_FUNC' template<typename A, typename B> EIGEN_DEVICE_FUNC constexpr static in... ^ /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:292:54: error: expected member name or ';' after declaration specifiers template<typename A, typename B> EIGEN_DEVICE_FUNC constexpr static in...


/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:296:36: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
  template<typename A, typename B> EIGEN_DEVICE_FUNC constexpr static in...
                                   ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:296:54: error:
      expected member name or ';' after declaration specifiers
  template<typename A, typename B> EIGEN_DEVICE_FUNC constexpr static in...
                                   ~~~~~~~~~~~~~~~~~ ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:358:3: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
  EIGEN_DEVICE_FUNC constexpr static inline auto run(array<T, N> arr, T ...
  ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:358:21: error:
      expected member name or ';' after declaration specifiers
  EIGEN_DEVICE_FUNC constexpr static inline auto run(array<T, N> arr, T ...

``` ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:367:3: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
  EIGEN_DEVICE_FUNC constexpr static inline T run(const array<T, N>& arr, T)
  ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:367:21: error:
      expected member name or ';' after declaration specifiers
  EIGEN_DEVICE_FUNC constexpr static inline T run(const array<T, N>& arr, T)
  ~~~~~~~~~~~~~~~~~ ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:376:3: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
  EIGEN_DEVICE_FUNC constexpr static inline T run(const array<T, 0>&, T ...
  ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:376:21: error:
      expected member name or ';' after declaration specifiers
  EIGEN_DEVICE_FUNC constexpr static inline T run(const array<T, 0>&, T ...
  ~~~~~~~~~~~~~~~~~ ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:383:1: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
EIGEN_DEVICE_FUNC constexpr inline auto array_reduce(const array<T, N>& ...
^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:383:19: error:
      expected unqualified-id
EIGEN_DEVICE_FUNC constexpr inline auto array_reduce(const array<T, N>& ...
                  ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:482:44: error:
      no template named 'h_repeat'; did you mean 'repeat'?
constexpr array<t, n> repeat(t v) { return h_repeat<n>::run(v, typename ...
                                           ^~~~~~~~
                                           repeat
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:482:23: note:
      'repeat' declared here
constexpr array<t, n> repeat(t v) { return h_repeat<n>::run(v, typename ...
                      ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:482:55: error:
      qualified name refers into a specialization of function template 'repeat'
constexpr array<t, n> repeat(t v) { return h_repeat<n>::run(v, typename ...
                                           ~~~~~~~~~~~^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:482:23: note:
      function template 'repeat' declared here
constexpr array<t, n> repeat(t v) { return h_repeat<n>::run(v, typename ...
                      ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h:482:23: error:
      no return statement in constexpr function
constexpr array<t, n> repeat(t v) { return h_repeat<n>::run(v, typename ...
                      ^
In file included from clstmfilter.cc:1:
In file included from ./clstm.h:17:
In file included from ./batches.h:6:
In file included from ./tensor.h:39:
In file included from /usr/local/include/eigen3/unsupported/Eigen/CXX11/Tensor:19:
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h:34:3: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
  ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h:34:21: error:
      expected member name or ';' after declaration specifiers
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
  ~~~~~~~~~~~~~~~~~ ^
/usr/local/include/eigen3/Eigen/src/Core/util/Macros.h:408:29: note: expanded
      from macro 'EIGEN_STRONG_INLINE'
#define EIGEN_STRONG_INLINE inline
                            ^
In file included from clstmfilter.cc:1:
In file included from ./clstm.h:17:
In file included from ./batches.h:6:
In file included from ./tensor.h:39:
In file included from /usr/local/include/eigen3/unsupported/Eigen/CXX11/Tensor:71:
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h:17:36: error:
      unknown type name 'EIGEN_DEVICE_FUNC'
template<typename T1, typename T2> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
                                   ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h:17:54: error:
      expected unqualified-id
template<typename T1, typename T2> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
                                                     ^
/usr/local/include/eigen3/Eigen/src/Core/util/Macros.h:419:29: note: expanded
      from macro 'EIGEN_ALWAYS_INLINE'
#define EIGEN_ALWAYS_INLINE __attribute__((always_inline)) inline
                            ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
scons: *** [clstmfilter.o] Error 1
scons: building terminated because of errors.`
```
WenchenLi commented 8 years ago

on mac, dont use brew install eigen, clone from source directly