编译特征C++QT

Compiling Eigen C++ QT

本文关键字:C++QT 特征 编译      更新时间:2023-10-16

特征位于文件中C:Usersjherb_000Downloadseigen-eigen-07105f7124f9

我想包括特征,你只需要使用

`#include "C:Usersjherb_000Downloadseigen-eigen-07105f7124f9Eigen/Dense" `

但它不是在编译。我知道它可以工作,因为我以前做过,除非你使用像g++这样的特定程序,否则特征网站不会解释如何做到这一点。

由于您通过标记暗示您正在使用qt-creator,您的问题归结为"如何在qt-creactor中添加include目录?"这里、这里和其他地方都有答案。需要注意的一点是,您应该添加的路径是C:Usersjherb_000Downloadseigen-eigen-07105f7124f9

当您在特定目录中包含特定文件时,如果该文件没有#include,那么任何其他文件(好吧,不在包含路径中的其他文件)都可以正常工作。但如果是这样(并且Eigen文件包括Eigen项目中的其他文件),则编译器不知道在哪里搜索它们。这就是为什么您必须明确地告诉编译器要查找包含的文件的目录。

非常简单。假设你有一个dependencies目录,里面有eigen目录。在.pro文件中,您可以将依赖项路径添加到INCLUDEPATH:

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

然后,要包含Dense模块,您需要:

#include <eigen/Dense>

其中eigen是指dependencies文件夹中的文件夹eigen。你的设置功能可能有很多变化,但你已经想到了。

好的,那么你需要做的是:

  1. C:Usersjherb_000Downloadseigen-eigen-07105f7124f9Eigen目录及其所有内容复制到机器上保存所有第三方库文件的位置。(您可能不想将这些文件保存在Downloads文件夹中)。例如,假设这个目录被复制到C:jacks_codeEigen。然后,

  2. 将这个新目录添加到Qt创建者的目录列表中进行搜索(请参阅Aki的链接答案):

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

    #include <Dense>

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

希望能有所帮助。您还可以读取解压包底部的INSTALL文件。