C++ 是否可以为C++;而不是使用预构建的文件?

C++ 是否可以为C++;而不是使用预构建的文件?,c++,eigen,C++,Eigen,我使用的是从以下网站下载的预构建的3.2.5 egen lib文件: 我听说,如果我自己在我的PC上构建文件,我可以实现与处理器的更高兼容性,这将导致lib的性能略有提高。目前我正在努力解决特征解算器计算时间过长的问题 我使用VisualStudio2005,我只是将Eigen文件位置添加到我的项目属性链接器中 有没有办法自己在我的平台上构建这些文件?我有点困惑我怎么能做到这一点。它与CMake有关吗?没有要构建的库,因为Eigen是一个“纯模板头库”。从主要方面: 要求 本征除了C++标准之

我使用的是从以下网站下载的预构建的3.2.5 egen lib文件:

我听说,如果我自己在我的PC上构建文件,我可以实现与处理器的更高兼容性,这将导致lib的性能略有提高。目前我正在努力解决特征解算器计算时间过长的问题

我使用VisualStudio2005,我只是将Eigen文件位置添加到我的项目属性链接器中


有没有办法自己在我的平台上构建这些文件?我有点困惑我怎么能做到这一点。它与CMake有关吗?

没有要构建的库,因为Eigen是一个“纯模板头库”。从主要方面:

要求

本征除了C++标准之外没有任何依赖关系 图书馆

我们使用CMake构建系统,但仅用于构建文档和 单元测试,并自动安装。如果你只是想使用 伊根,你可以马上使用头文件。没有二进制文件 要链接到的库,并且没有配置的头文件。伊根是一个纯粹的 标题中定义的模板库

您不需要将文件位置添加到链接器中,而是添加到项目中包含的(其他)目录或属性页中


关于计算时间,请确保您正在版本中运行,而不是调试。速度相差大约100。另外,请确保已打开优化(/O2或/Ox)。

没有要构建的库,因为Eigen是一个“纯模板头库”。从主要方面:

要求

本征除了C++标准之外没有任何依赖关系 图书馆

我们使用CMake构建系统,但仅用于构建文档和 单元测试,并自动安装。如果你只是想使用 伊根,你可以马上使用头文件。没有二进制文件 要链接到的库,并且没有配置的头文件。伊根是一个纯粹的 标题中定义的模板库

您不需要将文件位置添加到链接器中,而是添加到项目中包含的(其他)目录或属性页中


关于计算时间,请确保您正在版本中运行,而不是调试。速度相差大约100。另外,请确保已打开优化(/O2或/Ox)。

谢谢您的回答。我在释放模式下运行,氧气优化开启。我会试试公牛,但我不期望有多大的变化。另一件事是我试着玩了一点Eigen多线程,但没有结果。我想我需要换成MKL。由于我有MKL 7.1,所以无法将其与Eigen打包在一起(根据我所读的内容,如果MKL为10.3+,这是可能的)。关于多线程,请确保启用了/OpenMP。事实上,我有点困惑,因为我创建了一个不同的线程,负责一些DSP计算。在那里我使用特征矩阵和特征解算器——这是我代码中唯一使用特征矩阵的地方。但由于Eigensolver计算花费太多时间,有时会影响负责将数据复制到音频输出的另一个线程。线程是不相关的。。。当我使用Eigen::nbThreads()时;我得到答复1。我想知道在这种情况下是否应该对Eigen使用多线程。当然,我没有在主线程中使用它,但仍然只在一个线程中使用,而不是在其他线程中使用。有没有办法从Eigen创建一个用于静态链接的
lib
。您必须采用您可能需要的每种类型的表达式组合并创建它。只包含头文件就更容易了。谢谢你的回答。我在释放模式下运行,氧气优化开启。我会试试公牛,但我不期望有多大的变化。另一件事是我试着玩了一点Eigen多线程,但没有结果。我想我需要换成MKL。由于我有MKL 7.1,所以无法将其与Eigen打包在一起(根据我所读的内容,如果MKL为10.3+,这是可能的)。关于多线程,请确保启用了/OpenMP。事实上,我有点困惑,因为我创建了一个不同的线程,负责一些DSP计算。在那里我使用特征矩阵和特征解算器——这是我代码中唯一使用特征矩阵的地方。但由于Eigensolver计算花费太多时间,有时会影响负责将数据复制到音频输出的另一个线程。线程是不相关的。。。当我使用Eigen::nbThreads()时;我得到答复1。我想知道在这种情况下是否应该对Eigen使用多线程。当然,我没有在主线程中使用它,但仍然只在一个线程中使用,而不是在其他线程中使用。有没有办法从Eigen创建一个用于静态链接的
lib
。您必须采用您可能需要的每种类型的表达式组合并创建它。只包含头文件更容易实现。