尝试运行以下内容:
#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!
创建一个新的项目
确切地说,在本教程中给出的名字是更好的。 后来问:不行,可以再找点容易了。
我不认为我需要提到所有的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完成后,停在断点处。
输出:
对于所有谁想要共享库本身创建提升。
下载boost_1_53_0.zip
在你的?:\ cygwin目录下创建一个文件夹。
boost_1_53_0
将zip文件解压缩到该目录中。
它应该看起来像:
打开一个cmd窗口,cd到boost_1_53_0
目录。
要有一个干净的版本,我们需要一个只有cygwin home
和bin
的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.exe
到gcc.exe
和
i686-pc-cygwin-g++-4.exe
到g++.exe
希望它可以帮助你。
你可以粘贴编译时得到的错误吗? 我不习惯在Windows环境下编译程序,但我认为Jesse Good在评论中建议您有链接器错误。
您可以使用-lboost_filesystem
而不是-lboost_filesystem
来解决这个lfile_system
。
要知道如何调用你的库,你得到你的库的名称(在我的Unix环境下,我有libboost_filesystem.so),去掉“lib”前缀和“.so”或“.a”后缀(必须是不同的在Windows环境中)。
如果你的升压安装是正确的,你确定,那么对于Unable to resolve identifier
尝试从项目的上下文菜单中的代码帮助 – >重置项目。 它试图通过从头开始重新解析项目来恢复破碎的代码模型。 如果没有锻炼,请尝试关闭IDE并删除代码模型缓存。
ps你有编译错误吗?