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!
创建一个新项目

这是更好地采取在本教程这里给出的名称完全相同.后来问:它不起作用,可以更容易找到.
我认为我不需要提及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完成后,在断点处停止.
输出:

对于想要使用共享库本身创建boost的所有人.
在?:\ 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.exe要gcc.exe
和
i686-pc-cygwin-g++-4.exe以g++.exe
希望它能帮到你.