我正在尝试将Boost库合并到我的程序中,特别是lexical_cast
和geometry
。我用#include"boost/boost/geometry.hpp"
和#include"boost/boost/lexical_cast/lexical_cast_old.hpp"
包括它们。
当我运行代码时,我得到了致命的错误“无法打开包含文件:'boost / geometry / geometry.hpp':没有这样的文件或目录”这导致我在包含另一个库的Boost库中的另一个.hpp文件,但是使用#include<...>
而不是#include"..."
。
当我为"..."
替换它时,这个错误就会消失,但是它被替换为使用#include<...>
而不是#include"..."
包含的下一个库。
我觉得这可能会让我陷入一个兔子洞,用#include<...>
取代几乎所有的#include"..."
,这需要很长时间。是否有我可以更改的设置或我可以包含的一段代码可以解决这个问题?
或者我可以摆脱所有其他不必要的库并更改我需要的库(我知道,这仍然会很多,因为它们似乎相互依赖)。
我有Boost库版本1.58.0。
首先你应该读一下#include "filepath"
和#include <filepath>
here之间的区别。
就个人而言,我正在使用Visual Studio中的Boost,如下所示:
boost
库根目录的路径(在我的情况下为C:\Program Files (x86)\Boost_1_53
)。#include <boost/lexical_cast/lexical_cast_old.hpp>
如果您使用的是非标题库,则还应在项目属性→链接器→常规→附加库目录中添加Boost库的路径。
例如:
c:\boost\boost_1_58_0
(以管理员身份运行booststrap.bat
和b2
)。$(THIRD_PARTY)\boost\boost_1_58_0\include
和$(THIRD_PARTY)\boost\boost_1_58_0\
添加到VC ++目录→包含目录在Visual Studio 2012中,右键单击项目并选择“属性”。
在属性对话框中,选择“配置属性”,然后选择“VC ++目录”。
您需要将Boost包含路径添加到“包含目录”列表中。
如果您使用的是所有仅限标题的库,那么您就完成了。否则,您需要将Boost库路径添加到“Library Directories”。