当前位置:  开发笔记 > 编程语言 > 正文

在Windows上使用Boost和Cygwin

如何解决《在Windows上使用Boost和Cygwin》经验,为你挑选了1个好方法。

对于比我更先进的用户来说,这应该是一个简单的问题.:-)如何在Windows上使用带有cygwin的boost库?

我在winxp机器上使用cygwin使用g ++编程.我需要修改二阶贝塞尔函数,所以我下载了最新版本的boost库并将其安装在'c:\ cygwin\lib\boost_ 1_ 38_0 \'文件夹中.

我正在尝试从他们网站的"入门"部分运行"example.cpp"程序:http: //www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html

我正在使用简单的Bash shell命令行从我创建示例文件的目录进行编译:'g ++ -Wall example.cpp'

我不断收到消息:"boost/lambda/lambda.hpp:没有这样的文件或目录"

我在命令行中尝试了-L,-l,-I选项的所有可能组合以包含目录,但无济于事.还尝试在我的Windows系统的PATH行中添加该文件夹.

如何链接到/ boost目录并且还链接到所有子目录?头文件'lambda.hpp'正在调用子目录中的其他头文件.



1> MSalters..:

你可能不熟悉C++了吗?看来你的条款令人困惑.

C++程序分两步构建:编译和链接.在第一步中,每个源文件(通常称为.cpp)都是单独处理的.每个.cpp文件通常使用多个头文件,因此编译器首先插入这些文件.这就是为什么它被称为#include.

在第二步中,链接器将所有已编译的.cpp文件放在一起并构建最终程序.其中一些编译过的.cpp可能之前已捆绑在一起,其中捆绑包称为库.

Boost是头文件和.cpp文件的集合.因此,编译器和链接器可能都需要找到Boost目录.从您的错误消息,很明显编译器步骤是问题.链接器不再需要头文件.

编译器将看到这个#include 实例.这意味着它需要知道找到第一级boost目录的位置.我想在这一点上路径将是/lib/boost_ 1_ 38_0/include(总是有find / -name lambda.hpp猎枪的appraoch)


+1为罕见的耐心解释外行的小字的基本概念 - 谢谢.
推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有