只是尝试在Windows 8.1系统上将Eigen模板库与QtCreator IDE一起使用,我从下载的程序包中复制了整个Eigen子目录,并在项目的.PRO文件中添加了INCLUDEPATH行:
Layer*
我的main.cpp读为:
QT += core
QT -= gui
CONFIG += c++11
TARGET = testEigen
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
INCLUDEPATH += d:/Qt-apps/Eigen
SOURCES += main.cpp
DEFINES += QT_DEPRECATED_WARNINGS
编译错误是:
#include <QCoreApplication>
#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl;
return a.exec();
}
我看到伊卡洛斯(Icarus)的帖子也有类似的问题,并回答了πάνταῥεanswer。看来这是小事,但根本不熟悉外部参考文章的实质内容,我仍然受阻...
感谢您的帮助!
答案 0 :(得分:1)
您显然已将Eigen子文件夹的内容放入rails console
中,因此编译器无法在包含路径中找到d:/Qt-apps/Eigen
文件(该文件必须位于{{ 1}}。
最快的解决方案是编写
Eigen/Dense
但是我建议将Eigen的全部内容(即整个档案或存储库内容)放入类似d:/Qt-apps/Eigen/Eigen/Dense
的目录中并编写
INCLUDEPATH += d:/Qt-apps
进入您的d:/Qt-apps/eigen3
文件。
澄清一下:压缩包中应该有一个名为INCLUDEPATH += d:/Qt-apps/eigen3
的文件夹-这就是.PRO
中的Eigen
所指的位置。此Eigen
文件夹必须是包含路径中某些条目的子文件夹。