我不熟悉C ++,我决定尝试使用odeint
进行一些模拟,因为python对我的需求来说太慢了。
我找到了this package,我想要玩它。我只是不完全确定如何安装或放置这些库。 C++
是否有类似于python pip install
的内容?
旁注:我正在尝试使用Eclipse Kepler
来做这件事,但我并没有嫁给那个想法。
答案 0 :(得分:12)
我建议不要将代码放入您自己的项目中 - 这是一个相当快速和肮脏的解决方案。在C ++中使用库的正确方法(事实上,在我所知的任何编程语言中)是将所有库与您自己的项目分开,在文件系统上的单独位置。
然后告诉您的环境在哪里可以找到库文件并告诉您的项目使用它们。无论您使用的是Makefile还是Visual Studio项目文件,它始终都是相同的基本思想。
查看documentation of this library。它说:
odeint是一个仅限标头的库,没有与预编译代码的链接 是必需的
这意味着"库文件"我刚才提到的只是头文件。这使您更容易,因为您不必处理链接器选项。在C ++中,可以找到附加(项目外部)头文件的位置通常称为"包含路径"。
因此,您的新问题应该是:如何告诉Eclipse Kepler我的包含路径?
将这个新问题输入Google(作为" eclipse kepler包含路径")会产生一些有趣的结果。它最终会引导您进入Eclipse documentation about include paths,在那里您可以学习如何编辑C ++包含路径。
现在一切都已设置完毕,您最终可以通过以下行来使用项目库中的头文件:
#include <boost/numeric/odeint.hpp>
你注意到< >
了吗?它们有很大的不同,因为它们是C ++的说法,而且这不是我项目的一部分,请从我的包含路径中获取#34;。就像标题是语言的一部分一样(例如<vector>
或<iostream>
)。
所有这一切最初可能看起来很麻烦,也许你一开始就从中获得很少,但从长远来看,对于许多不同的项目和许多不同的图书馆来说,它是防止混乱的唯一方法
答案 1 :(得分:0)
由于odeint是一个仅限标题的库,您可以使用自己的源代码放置它。只需复制odeint的main.cpp所在的boost目录(假设你有一个main.cpp,但你应该明白这一点):
your_sources/
main.cpp
boost/
numeric/
odeint/
odeint.hpp
现在您可以通过包含
来使用该库#include "boost/numeric/odeint.hpp"