如何安装第三方库

时间:2014-02-21 18:37:37

标签: c++ eclipse macos libraries

我不熟悉C ++,我决定尝试使用odeint进行一些模拟,因为python对我的需求来说太慢了。

我找到了this package,我想要玩它。我只是不完全确定如何安装或放置这些库。 C++是否有类似于python pip install的内容?

旁注:我正在尝试使用Eclipse Kepler来做这件事,但我并没有嫁给那个想法。

2 个答案:

答案 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"