无法让 cygwin 编译C++ Boost 库

Can't get cygwin to compile C++ Boost libraries

本文关键字:C++ Boost 编译 cygwin      更新时间:2023-10-16

我正在尝试启动并运行Boost,所以我试图从Boost的"入门"页面编译一个简单的示例问题。我有两个问题,我不确定它们是否有关联(我比新手好,但不多),但也许它们有关联。。。

第一个问题:"tar--bzip2-xf/path/to/boost_1_49_0.tar.bz2"命令不起作用(是的,我输入了正确的路径,但它给了我一些错误,我忘记了它们是什么),所以我使用了boost_1_4 9_0.tar.bz2所在目录中的"tar-xjvf"。这对zip文件进行了解压缩,然后我继续进行示例。。。

第二个问题:example.cpp文件不会编译,代码中的第一条语句是#include"boost/lambda/lambda.hpp",但对于lambda.hpp尝试访问的每个头文件,都会出现"No such file or directory"编译错误。例如,这里有lambda.hpp中的两个(六个,我得到了所有六个)头文件的错误,以及cygwin编译器显示的错误:

boost/lambda。hpp:14:33:boost/lambda/core.hpp:没有这样的文件或目录boost/lambda。hpp:21:52:boost/lambda/detail/operator_actions.hpp:没有这样的文件或目录

如果有帮助的话,这是我正在运行的编译命令(我通常在单独的-o命令中创建可执行文件):g++-c示例.cpp

为什么系统找不到这些?在开始之前,我将安装的目录(路径/to/boost_1_49_0)添加到了path变量中,所以我知道这不是它。谢谢你的建议。。。

(我看过stackoverflow,也有类似的问题,但没有有效的解决方案)

看起来您已经解决了第一个问题:即,必须在tar上指定-j标志才能解开bzip2文件。

对于第二个问题,您需要在include路径上指定boost,方法是使用-I命令行选项或通过CPLUS_include_path环境变量指定boost。