boost和Code :: Blocks有问题

时间:2009-09-04 01:30:56

标签: c++ ide compiler-construction boost linker

我一直在尝试使用Code :: Blocks来使用boost库,但是遇到了一些麻烦。

当我第一次尝试获得提升时,我所做的就是下载最新的zip文件并将其解压缩到CodeBlocks文件夹中。然后我设置编译器设置以查看boost文件夹。这允许我编译,但不能链接。然后我读了BoostWindowsQuickReference。我删除了与机器相关的所有相关内容,并开始新鲜。

我一步一步地按照说明进行操作,并且唯一没有完全按照说明进行说明的是,其中包含include \ boost的install-proper文件夹位于C:而不是我的CodeBlocks文件夹中。所以我只是将它复制(只是因为某种原因它需要在那里)到CodeBlocks文件夹,我觉得很奇怪,因为我已经有了一个boost_1_40_0文件夹来下载.zip。

然后我尝试编译一个程序,它提出了完全相同的错误。然后我意识到我忘了放入链接库(例如:boost_regex-mgw44-mt-1_40.lib)。现在我得到

错误:ld.exe ||找不到-lboost_regex-mgw44-mt-1_40.lib |

我有几个问题:

  1. 显然,我做错了什么?
  2. 每次我想使用boost工具时,是否需要放入链接库(所有内容都分成不同的文件,不只是一个大项目。)
  3. 是否有必要使用boost-jam构建库,还是我可以将其解压缩并使用它? (可能是一个愚蠢的问题,但当我得到完全相同的错误时,种下了一小部分怀疑。)
  4. 我应该试试nuwen的MinGW Distro吗? (它会让事情变得更容易吗?)
  5. 如果需要澄清,我很乐意这样做。感谢。

    编辑:现在我无法编译常规程序。所以我刚刚重新开始。

3 个答案:

答案 0 :(得分:0)

1,应该是-lboost_regex-mgw44-mt-1_40

2,阅读文档,大多数boost库不需要链接库

3,4,你应该自己编译,或者尝试nuwen的MinGW(我安装了它并且工作正常)

答案 1 :(得分:0)

BoostPro具有可用于Boost库的Windows二进制文件。如果您只下载Boost源,则必须编译它,如果您使用的是任何非标头库(例如boost regex)。 BoostPro二进制文件允许您链接到这些,而无需构建任何内容。

答案 2 :(得分:0)

在Windows上,“安装”Boost的位置并不重要。只需获取.7z,使用bjam.exe进行编译并将其传递给您需要的选项。它将创建一个名为“bin.v2”的文件夹,并将生成的库放在那里。在Code :: Blocks中,您需要做的就是编辑项目选项并将搜索路径指向boost_1_40_0 \ boost并手动输入要链接的库(来自bin.v2的库)。它应该只是工作。

不要使用预编译的Boost库。