提升Netbeans 7.1.1

尝试运行以下内容:

#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; } 

我在cygwin中遇到了一些错误,所以我决定尝试netbeans,并使用以下内容作为指导。 我添加了文件系统的所有链接以及下面的Project -> properties -> Linker ->Libraries -> Add option -> Other -> -lfile_system ,如此处所述。 我已经使用#include<boost/any.hpp>运行了一个单独的testing,所以我现在不怀疑我的提升未安装correclty。

这似乎是奇怪的,它是“file_system”,所以我也试过“文件系统”,但无济于事。

当我按住Ctrl并点击#include<boost/filesystem/operations.hpp>我的netbeans调出我的operations.hpp文件,好像内部正确链接,可以“看到”我想要的内容。


安装boost的解决scheme有以下forms:1 – 如果您有任何正在用于Visual Studio的pathvariables,则应在安装期间暂时更改该variables。 这是一个很好的指导 。 一旦完成,这是一个步骤完成。

2 – 下载并安装MinGW。 这是一个非常简单的过程,您可以在这里find安装程序文件。

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

Horay!

一步一步使用Cygwin的Boost

创建一个新的项目

在这里输入图像说明

确切地说,在本教程中给出的名字是更好的。 后来问:不行,可以再找点容易了。

我不认为我需要提到所有的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; } } 

在本节中,我们假设“boost”已经被编译。

转到工具 – >选项

你的C ++代码帮助选项应该看起来像这样。

在这里输入图像说明

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

在这里输入图像说明

添加新的工具集合

在这里输入图像说明

在OK完成这个对话框后,我们应该找到如上所示的设置。 (C ++代码帮助选项)。

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

让我们创建一个新的文件夹“提升”。

在这里输入图像说明

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

在这里输入图像说明

对于我们的简短应用 我们只需要2个文件。

 libboost_filesystem-gcc45-mt-d-1_53.dll.a libboost_system-gcc45-mt-d-1_53.dll.a 

但是如果我们要复制两个文件,我们可以复制所有文件。
因此,标记所有找到的.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 

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

 boost_filesystem-gcc45-mt-d-1_53.dll boost_system-gcc45-mt-d-1_53.dll 

在这里输入图像说明

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

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

在这里输入图像说明

我用箭头标出了重要部分,两个库。
所有库都找到了,make完成后,停在断点处。

输出:

在这里输入图像说明

为Cygwin构建Boost

对于所有谁想要共享库本身创建提升。

下载boost_1_53_0.zip

在你的?:\ cygwin目录下创建一个文件夹。
boost_1_53_0

在这里输入图像说明

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

在这里输入图像说明

打开一个cmd窗口,cd到boost_1_53_0目录。
要有一个干净的版本,我们需要一个只有cygwin homebin的PATH。
在cmd类型中。

 SET PATH=T:\cygwin;T:\cygwin\bin 

并测试路径。

 PATH 

在这里输入图像说明

类型

 bootstrap.bat 

在这里输入图像说明

类型

 .\b2 --build-dir=T:\boost-cyg toolset=gcc variant=debug link=shared runtime-link=shared 

一段时间后,构建完成。
现在你有和我们在教程中使用的相同的环境。

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

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

希望它可以帮助你。

你可以粘贴编译时得到的错误吗? 我不习惯在Windows环境下编译程序,但我认为Jesse Good在评论中建议您有链接器错误。

您可以使用-lboost_filesystem而不是-lboost_filesystem来解决这个lfile_system

要知道如何调用你的库,你得到你的库的名称(在我的Unix环境下,我有libboost_filesystem.so),去掉“lib”前缀和“.so”或“.a”后缀(必须是不同的在Windows环境中)。

如果你的升压安装是正确的,你确定,那么对于Unable to resolve identifier尝试从项目的上下文菜单中的代码帮助 – >重置项目。 它试图通过从头开始重新解析项目来恢复破碎的代码模型。 如果没有锻炼,请尝试关闭IDE并删除代码模型缓存。

ps你有编译错误吗?