我可以单独包含每个库,但是当我尝试同时包含它们时,我会遇到大量错误。我正在使用Boost v1_55_0和Eigen v3.2.1。 知道问题可能是什么吗?
我的包含如下:
#include <boost/regex.hpp>
#include <Eigen>
我粘贴下面的前几个错误,其中有超过100个错误。
Error 1 error C1189: #error : The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core. c:\local\eigen\array 8 1 Project1
2 IntelliSense: #error directive: The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core. c:\local\Eigen\Array 8 4 Project1
3 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\functional\hash\extensions.hpp 160 13 Project1
4 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\functional\hash\extensions.hpp 162 5 Project1
5 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\functional\hash\extensions.hpp 377 1 Project1
6 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 59 7 Project1
7 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 100 7 Project1
8 IntelliSense: identifier "name" is undefined c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 108 24 Project1
9 IntelliSense: explicit type is missing ('int' assumed) c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 111 4 Project1
10 IntelliSense: a type qualifier is not allowed on a nonmember function c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 136 21 Project1
11 IntelliSense: a type qualifier is not allowed on a nonmember function c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 146 33 Project1
12 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 151 1 Project1
13 IntelliSense: expected a declaration c:\local\boost_1_55_0\boost\regex\v4\basic_regex.hpp 153 1 Project1
答案 0 :(得分:5)
Boost包含C ++ 11 std::array
标题array
,但您的包含路径正在从Eigen中获取Array
标题(显然已过时)。您必须位于不区分文件的文件系统上。
似乎包含Eigen标头的正确方法是:
#include <Eigen/Eigen>
例如参见Getting Started sample。您应该修改包含路径以使用包含Eigen/
头目录的目录,而不是将Eigen/
目录放在包含路径上。