在Netbeans 7.1.1中提升

jas*_*n m 5 c++ windows boost netbeans shared-libraries

试图运行以下内容:

        #include<iostream>
        #include<boost/filesystem/operations.hpp>

        namespace bfs=boost::filesystem;
        int main()
        {
        bfs::path p("second.cpp");
        if(bfs::exists(p))
        std::cout<<p.leaf()<<std::endl;
        }
Run Code Online (Sandbox Code Playgroud)

我在cygwin中遇到了一些错误,因此我决定试用netbeans,并使用以下内容作为指导.我添加了所有链接和文件系统以下Project -> properties -> Linker ->Libraries -> Add option -> Other -> -lfile_system为说明这里.我已经使用了一个单独的测试,#include<boost/any.hpp>所以我目前还不怀疑我的提升没有安装.

我觉得它是"file_system"似乎很奇怪,所以我也试过"文件系统",但无济于事.

当我按住Ctrl并点击#include<boost/filesystem/operations.hpp>我的netbeans时会显示我的operations.hpp文件,所以看起来没问题(在内部正确链接它可以"看到"我希望它看到的内容).


安装boost的解决方案有以下形式:1 - 如果您有任何用于Visual Studio的路径变量,则应在安装期间临时更改变量.这是一个很好的指南.完成后,这是一步完成.

2 - 下载并安装MinGW.这是一个非常简单的过程,您可以在此处找到安装程序文件.

一旦你完成了这些事情(如果你和我一样),你现在可以正确安装boost.

Horay!

mos*_*o-x 8

逐步使用Boost和cygwin

创建一个新项目

在此输入图像描述

这是更好地采取在本教程这里给出的名称完全相同.后来问:它不起作用,可以更容易找到.

我认为我不需要提及T:\当然必须用你的驱动器替换.

项目名 : Boost-cyg-Test

在此输入图像描述

现在你的项目应该是这样的

在此输入图像描述

打开main.cpp
使用以下代码覆盖生成的代码.我们希望这一点,首先一切都正常运行,没有错误.

因此,请不要使用您自己的特殊代码.
很难找到错误.然后告诉几个问题后得到:
我使用了自己的代码

#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;

int main()
  {
    path p("second.cpp");
      if (exists(p)) { std::cout<<p.leaf()<<std::endl; }
  }
Run Code Online (Sandbox Code Playgroud)

在本节中,我们假设已经编译了"boost".

转到工具 - >选项

您的C++代码帮助选项应如下所示.

在此输入图像描述

如果不是这样,我们应该让Netbeans为我们创造.

在此输入图像描述

添加新工具集

在此输入图像描述

用OK完成此对话框后,我们应该找到上面显示的设置.(C++代码帮助选项).

将所有库复制到正确的位置

让我们创建一个新文件夹'boost'.

在此输入图像描述

使用搜索工具,在您编译的Boost文件夹中搜索*.a
我的My Boost编译,shared option我们发现:

在此输入图像描述

对于我们的简短App.我们只需要2个文件.

libboost_filesystem-gcc45-mt-d-1_53.dll.a
libboost_system-gcc45-mt-d-1_53.dll.a
Run Code Online (Sandbox Code Playgroud)

但如果我们要复制两个文件,我们可以复制所有文件.
因此,标记所有找到的.a文件并将其复制到刚创建的目录中
T:\cygwin\lib\boost.

现在我们对我们的.dll文件做同样的事情.
标记所有.dll文件并将其复制到您的?:\cygwin\bin目录中.
如果您只编译了静态库,则可以跳过这一点.

在此输入图像描述

现在是时候修改我们的项目设置了.
正如您所看到的,我将源Boost文件夹放入cygwin

在此输入图像描述

在此输入图像描述

正如我们上面已经提到的,我们需要两个.a文件.
使用添加库导航到T:\cygwin\lib\boost并选择

libboost_filesystem-gcc45-mt-d-1_53.dll.a
libboost_system-gcc45-mt-d-1_53.dll.a
Run Code Online (Sandbox Code Playgroud)

现在你会注意到这个名字被netbeans缩短为:

boost_filesystem-gcc45-mt-d-1_53.dll
boost_system-gcc45-mt-d-1_53.dll
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这有点令人困惑.看起来好像.dll站在这里.但它确实是一个.a文件.

在main.cpp中设置断点.现在我们开始调试.

在此输入图像描述

我用箭头标记了重要部分,两个库.
找到所有的库,在make完成后,在断点处停止.

输出:

在此输入图像描述

为Cygwin构建Boost

对于想要使用共享库本身创建boost的所有人.

下载boost_1_53_0.zip

在?:\ cygwin目录中创建一个文件夹.
boost_1_53_0

在此输入图像描述

将zip文件解压缩到该目录中.
它应该看起来像:

在此输入图像描述

打开一个cmd窗口,cd到boost_1_53_0目录.
要拥有一个干净的构建,我们需要一个只有cygwin home和的PATH bin.
在cmd类型中.

SET PATH=T:\cygwin;T:\cygwin\bin 
Run Code Online (Sandbox Code Playgroud)

并测试路径.

PATH
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

类型

bootstrap.bat
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

类型

.\b2 --build-dir=T:\boost-cyg toolset=gcc variant=debug link=shared runtime-link=shared
Run Code Online (Sandbox Code Playgroud)

一段时间后,构建完成.
现在,您拥有我们在本教程中使用的相同环境.

如果您收到错误:gcc not found
?:\cygwin\bin文件夹中复制(不重命名),例如:(名称可能不同).
i686-pc-cygwin-gcc-4.5.3.exegcc.exe

i686-pc-cygwin-g++-4.exeg++.exe

希望它能帮到你.