如何为使用Eigen(C线性代数的模板库)的C项目编写一个makefile?

我正在使用特征库,它承诺矩阵运算的矢量化.我不知道如何使用Eigen中给出的文件并编写一个makefile.使用Eigen的源文件包括下面列出的文件,这些文件甚至不是头文件(它们只是一些文本文件) –

<Eigen/Core>
<Eigen/Dense>
<Eigen/Eigen>

等等.在Eigen的网页上,提到为了使用它的功能我不需要构建项目,那么如何在makefile中包含这些文件来构建我的项目.我的示例main.c文件看起来像这样.任何人都可以告诉我如何为这个文件编写一个makefile makefile –

#include <Eigen/Core>

// import most common Eigen types 
USING_PART_OF_NAMESPACE_EIGEN

int main(int, char *[])
{
  Matrix3f m3;
  m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
  Matrix4f m4 = Matrix4f::Identity();
  Vector4i v4(1, 2, 3, 4);

  std::cout << "m3\n" << m3 << "\nm4:\n"
    << m4 << "\nv4:\n" << v4 << std::endl;
}

救命!

解决方法:

根据Eigen’s website,这是一个仅限标题的库.

这意味着没有任何东西可以编译或链接到它.相反,只要您在标准位置(/usr/local/include on * nix / Mac)上有头文件,那么您所要做的就是将该位置添加到预处理器构建步骤中.

假设您正在运行* nix / Mac,并假设您已将所有内容安装到默认位置(例如#include< Eigen / Core>引用文件/usr/local/include / Eigen / Core),那么SUPER简单makefile看起来像这样:

main: main.cpp
    g++ -I /usr/local/include main.cpp -o main

用英语说:

>主要取决于main.cpp
>制作主要,使用g来

>编译main.cpp,
>输出文件主,
>在目录/usr/local/include中查找它不知道的任何标头

注意:g线前面有一个TAB,而不是四个空格.

希望有所帮助.

上一篇:Autoware 1.12 安装


下一篇:Matrix&Vector的运算