c++ - Eclipse 无法完全解析 Eigen C++ 库,但可以编译

标签 c++ linux eclipse eigen

我在 ubuntu 上通过 Eclipse 使用 Eigen C++ 矩阵库。 这是简单的代码:

#include <iostream>
#include <eigen3/Eigen/Core>
using namespace Eigen;
using namespace std;

int main() {
  VectorXcd spec(5);
  spec(4) = std::complex<double>(1, 2);
  cout << spec(4).imag() << "\n";
  return 0;
}

它运行正常,但 eclipse 指示一个名为“无法解析方法‘imag’”的语义错误。 这种现象也出现在我自己的Eigen项目中。我使用了几个第 3 方库,但此类错误仅与 Eigen 有关。 但是,如果我换成windows下的visual studio 2013就一切正常了,也可以进入Eigen库中相关代码的实现。

估计是模板库解析问题

最佳答案

Eclipse 中的错误突出显示不是编译器的输出。 通常,Eclipse 甚至不知道头文件位于何处。 有不同的选项可以告诉 Eclipse 包含文件在哪里:

  1. 您可以添加/usr/include/eigen3 C++ 包含的列表。 (右键单击项目、属性、C/C++ 常规、路径和符号、所有配置、包括、C++、添加...)。这很繁琐,必须针对所有配置和项目完成。

  2. 当包含路径出现在编译器日志中时,Eclipse 有时会自动找到它们。例如,如果您使用 CMake 作为生成器并在 Eclipse 中构建,设置更详细的编译命令会将这些路径转发给 Eclipse。为此,将 set(CMAKE_VERBOSE_MAKEFILE ON) 添加到您的顶级 CMakeLists.txt。在 Eclipse 项目的上下文菜单中清理、重新编译、重新运行索引。

  3. 或者,您可以设置不同的构建过程,其中构建系统生成您的 Eclipse 项目。例如,CMake 可以创建使用 Ninja 的 Eclipse 项目。构建系统。该项目然后具有正确的设置来进行语法突出显示。 https://cmake.org/cmake/help/v2.8.9/cmake.html#gen:EclipseCDT4-Ninja

关于c++ - Eclipse 无法完全解析 Eigen C++ 库,但可以编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029237/

相关文章:

c++ - utf8 等效项显示不正确

c++ - 在 OpenCV C++ 中访问 "Mat"对象(不是 CvMat 对象)中的矩阵元素

c++ - 降雨量统计

Python - ctypes - 如何调用函数和访问结构字段?

eclipse - 在 Eclipse 中的调试 session 期间记录所有跟踪信息

eclipse - 从 Eclipse 使用 ant 构建的策略

eclipse - 将语言文本转换为模型

linux - 在docker中模拟VPN连接

linux - 有没有办法查看谁在 Linux 中查看/访问了文件?

linux - 从未知名称的文件夹中解压缩?