编译Eigen C ++ QT

时间:2016-03-27 05:22:23

标签: c++ qt eigen

Eigen位于文件中 C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9

我想包括你只需要使用

`#include "C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9\Eigen/Dense" `

但它没有编译。我知道它可以工作,因为我之前已经完成了,除非你使用像g ++这样的特定程序,否则特征网站没有解释如何做到这一点。

3 个答案:

答案 0 :(得分:2)

由于您通过标签暗示您正在使用qt-creator,因此问题归结为"如何在qt-creator中添加包含目录?"有herehere和其他人的答案。需要注意的一点是,您应添加的路径为C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9

当您在特定目录中包含特定文件时,如果该文件没有#include任何其他文件(好的,包含路径中没有其他文件),则会发生什么效果很好。但如果确实如此,(和Eigen文件包含Eigen项目中的其他文件)则编译器不知道在哪里搜索它们。这就是为什么你必须明确地告诉编译器哪些目录要查找包含的文件。

答案 1 :(得分:1)

非常容易。假设您有一个dependencies目录,而内部有一个eigen目录。在您的.pro文件中,您可以将依赖项路径添加到INCLUDEPATH

INCLUDEPATH += ../dependencies/ # or wherever that path is (relative to your .pro file)

然后,要包含Dense模块,请执行以下操作:

#include <eigen/Dense>

其中eigen指的是eigen文件夹中的文件夹dependencies。设置功能可能有很多变化,但是您明白了。

答案 2 :(得分:-1)

那么你需要做的是:

  1. C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9\Eigen 目录及其所有内容复制到您将所有第三方库文件保留在计算机上的任何位置。 (您可能不想将这些文件保存在Downloads文件夹中)。例如,假设此目录已复制到C:\jacks_code\Eigen。然后,

  2. 将此新目录添加到Qt-creator要搜索的目录列表中(请参阅Aki的链接答案):

  3. 在每个源文件中,要包含Eigen模板,请使用预处理器指令:

    #include <Dense>

  4. 编译器将使用您告诉它的目录,将文件解除引用到C:\jacks_code\Eigen\Dense(完整的文件名)。这里有点令人困惑,因为根Eigen文件夹中的文件没有.h.c.cpp.hpp扩展名。

    希望有所帮助。您还可以阅读解压缩包基础中的INSTALL文件。