我的项目使用 Eigen-3.3-beta 。我可以在包含<Eigen/Core>
的visual studio 2015社区中构建我的项目。但是在我加入<unsupported\Eigen\CXX11\Tensor>
后,我得到了类似的奇怪的编译错误:
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(46): error C3646: 'nLength': unknown override specifier
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(46): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(47): error C3646: 'lpSecurityDescriptor': unknown override specifier
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(47): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(48): error C3646: 'bInheritHandle': unknown override specifier
......
1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\minwinbase.h(295): fatal error C1003: error count exceeds 100; stopping compilation
似乎我的项目与 Eigen-3.3-beta 的正常部分正常工作,除了unsupported module
。更重要的是,如果包含unsupported module
,则 GLEW (例如GLfloat
)引入的类型无法解析。我做错了吗?
答案 0 :(得分:1)
这似乎源于<unsupported\Eigen\CXX11\Tensor>
中的包含。
我在这个帖子(Compile error in 'winbase.h')的帮助下解决了这个问题,只是在<unsupported\Eigen\CXX11\Tensor>
的{{1}}与#include <winbase.h>
交换了第38行。
编辑:这似乎是它在存储库中的持续版本中修复的方式。