微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Windows上使用Cygwin的Boost

对于比我更先进的用户来说,这是一个简单的问题。 :-)如何在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命令行创build示例文件的目录进行编译:'g ++ -Wall example.cpp'

Cmake没有find提升1.51(Windows 8)

在Windows上安装Boost> 1.51:替代Boost Pro?

c ++ boost计算在函数中花费的时间

提升Python:停止解释器

CMake无法在Windows上find提升(以及其他任何东西)

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

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

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

如何在Linux中添加boost库到Code :: Blocks

使用从源代码构build的bzip2提升iostream

如何捕捉不是从你的线程抛出?

获取PostThreadMessage的boost :: thread的ID

在unix上加强UDP套接字问题 – bind:已经在使用的地址

你可能不熟悉C ++呢? 看来你是混淆的条款。

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

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

Boost是头文件和.cpp文件的集合。 所以,编译器和链接器都需要找到Boost目录。 从你的错误信息,很明显,编译器的步骤是问题。 链接器不再需要标题

编译器会看到#include <boost/lambda/lambda.hpp>指令。 这意味着它需要知道在哪里找到第一级boost目录。 我想在这一点上,路径将是/lib/boost_ 1_ 38_0/include (总是有find / -name lambda.hpp shotgun find / -name lambda.hpp )

如果你不完全熟悉cygwin,你应该看看http://nuwen.net/mingw.html ,它给你一个完整的MinGW C ++安装,包括为你设置的所有库(比如Boost)。

编辑:我应该清楚你可以使用这个MinGW安装除了Cygwin,而不是作为替代。 只要确保MinGW bin目录出现在Cygwin之前的PATH中。

我认为你需要-I /lib/boost_1_38_0 – 尽管这是一个非常不寻常的地方。 你必须让我们知道你是如何安装它的,你只是把它解压到你说的位置,还是运行makefile? 我认为,既然你给了一个Windows路径,你没有安装在cygwin中 – 你可能应该这样做。 UNIX入门指南中的说明应该有所帮助 – 尽管不要下载预编译的bjam ,但需要使用cygwin编译。

但是如果你对cygwin(或者一般的unix)不是很熟悉的话,我想你可能会发现使用本地windows工具更容易 – 就像Neil Butterworth的回答一样 。

谢谢大家的信息,这是一个很好的介绍与cygwin使用库。 丹尼尔是对的。 虽然任何变化给出了一个错误,下面的行(使用大写我)诀窍:

g ++ -Wall -I / cygdrive / c / cygwin / lib / boost_1_38_0 / example.cpp -o例子

我也会在接下来几天检查MinGW。

PS我只是简单地下载和解压缩在该文件夹的提升,但由于我只使用头文件,我可能不需要用cygwin编译。 [cygwin包含的boost版本是1.33,似乎没有贝塞尔函数。]

这是在win7 cygwin64 g + + 5.4和boost-1.64.7z在2017-7。 谷歌没有显示任何有用的结果开始在Windows上的提振(是不是流行时尚?)。

通过实验,我设法编译并运行一个boost图形示例程序,如下所示:

:: g++ 5.4 in c:cygwin64 :: 7z extract boost download in c:toolsboostboost164 > set BOOST_ROOT=c:toolsboostboost164 > setx BOOST_ROOT c:toolsboostboost164 -m > cd %BOOST_ROOT% > bootstrap.sh gcc (the bat files doesn't work) > b2.exe ...Failed updating 58 targets... ...skipped 18 targets... ...updated 1123 targets... :: Lots of example here (not ranked highly by google) > mklink /D eg %BOOST_ROOT%/libs/graph/example :: Compiled and run [maxflow code using boost library][1] :: http://vision.csd.uwo.ca/code > unzip ; vi Makefile CPPFLAGS = -I %BOOST_ROOT%/ LDFLAGS = -L%BOOST_ROOT%/stage/lib > make > set PATH=%PATH%;%BOOST_ROOT%/stage/lib > maxflow.exe Flow = 6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐