我在CentOS 6.5 x64操作系统上运行,并使用yum安装犰狳。我正在开发Eclipse CDT
我在项目属性中包含了armadillo标题>> C / C ++ Build>>设置>> GCC C ++编译器>>包括>>包含文件。条目是:“/ usr / include / armadillo”
我正在处理的头文件识别armadillo,并且不会因任何错误或警告而标记include语句。
以下是代码:
#include <armadillo>
using namespace std;
using namespace arma; // arma is not recognized as a symbol
const double DEGREES_PER_RADIAN = 180.0 / datum::pi; // datum is not recognized
我已经检查了文件/usr/include/armadillo
,它确实包含了名称空间arma部分。
//! \namespace arma namespace for Armadillo classes and functions
namespace arma
{
// preliminaries
...
我还检查了权限,/usr/include/armadillo
文件对所有用户都可读。
问题是当我添加“using namespace arma”时,CDT将其标记为错误,并说“符号'arma'无法解析”。
此时,我没有任何其他想法来弄清楚为什么命名空间不被识别。任何有关这方面的见解或指示都将非常感激。
答案 0 :(得分:2)
这个问题的答案提供了我的问题的答案: Clean Eclipse Index, it is out of sync with code
Josh Kelley从相关问题的回答:
右键单击您的项目,进入Index子菜单,然后选择“Rebuild”,“Update with modified files”或“Freshen all files。”
我不知道这三个选项之间的区别,但“使用修改过的文件更新”或“刷新所有文件”之一通常会为我修复它。
此外,我确信您已经完成了此操作,但请确保您运行的是最新版本的Eclipse CDT。当前版本似乎比以前的版本具有更可靠的索引。
运行Index&gt;&gt;重建和索引&gt;&gt;刷新所有文件,错误消失了。