C++ Netbeans 7.1.1中的增强功能

C++ Netbeans 7.1.1中的增强功能,c++,windows,boost,netbeans,shared-libraries,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::cou

正在尝试运行以下命令:

        #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;
        }
#包括
#包括
名称空间bfs=boost::filesystem;
int main()
{
路径p(“second.cpp”);
如果(bfs::存在(p))
std::cout Add option->Other->-lfile_system
如前所述。我已经使用
#include
运行了一个单独的测试,因此我目前并不怀疑我的boost没有正确安装

这对我来说似乎很奇怪,因为它是“文件系统”,所以我也尝试了“文件系统”,但没有用

当我按住
Ctrl
并单击
#include
时,我的netbeans会显示我的
操作.hpp
文件,这样它看起来就正常了(内部链接正确,可以“看到”我希望它看到的内容)


安装boost的解决方案如下所示: 1-如果有任何用于Visual Studio的路径变量,则应在安装过程中临时更改该变量。完成后,这是完成的一个步骤

下载并安装MinGW。这是一个非常简单的过程,你可以找到安装程序文件

完成这些工作后(如果您与我处于相同的情况),现在就可以正确安装boost了

Horay!

逐步使用Boost和cygwin 创建新项目

最好将本教程中给出的名称准确地记下来。稍后询问:它不起作用,这样更容易找到

我不认为我需要提及所有
T:\
当然必须用您的驱动器替换。

项目名称:
boostcyg测试

现在,您的项目应该是

打开main.cpp
用以下代码覆盖生成的代码。我们希望,首先,一切工作都不会出错

因此,请不要使用您自己的特殊代码。
很难找到一个错误。然后在几次询问后告知,得到:
我使用了自己的代码

但如果要复制两个文件,我们可以复制所有文件。
因此,标记所有找到的
.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中设置断点。现在我们开始调试

我已经用箭头标记了重要部分,即两个LIB。
找到所有LIB,在make完成后,在断点处停止

输出:

为Cygwin构建Boost 适用于所有希望通过共享库本身创建boost的用户

在?:\cygwin目录中创建文件夹。
boost\u 1\u 53\u 0

将zip文件解压缩到该目录中。
它应该是这样的:

打开cmd窗口,cd到
boost\u 1\u 53\u 0
目录。
为了有一个干净的构建,我们需要一个只有
cygwin home
bin
的路径
在cmd类型中

SET PATH=T:\cygwin;T:\cygwin\bin 
并测试路径

PATH

类型

类型

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

如果出现错误:
gcc未找到

?:\cygwin\bin
文件夹中复制(不重命名),例如:(名称可能不同)。
i686-pc-cygwin-gcc-4.5.3.exe
gcc.exe


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


希望对您有所帮助。

您能粘贴编译时出现的错误吗? 我不习惯在Windows环境中编译程序,但我认为正如Jesse Good在一篇评论中所说的那样,您有一个链接器错误

您可以使用
-lboost\u filesystem
而不是
lfile\u system
来解决此问题


要了解如何调用lib,请获取lib的名称(在我的unix环境中,我有libboost_filesystem.so),去掉“lib”前缀和“.so”或“.a”后缀(在Windows环境中必须不同).

如果您的boost安装是正确的,并且您确信它是正确的,那么对于
无法解析标识符
请尝试代码帮助->从项目上下文菜单中重新分析项目。它尝试通过从头重新分析项目来恢复损坏的代码模型。如果没有解决,请尝试关闭IDE并删除代码模型ca切


p、 你有编译错误吗?

-lfile\u system是错误的。通常是
-lboost\u filesystem
-lboost\u filesystem-mt
,检查你的lib目录。你可能还需要
-lboost\u system
。你得到了什么错误?Jesse-尝试了那些。没有工作。你读到错误消息了吗?Boost.Filesystem V3及更高版本需要std::wstring支持。您的标准库是否提供std::wstring?您应该确定@Sam发布的问题的答案。确保您使用的是gcc4-g++(而不是gcc-g++),以及最新的libstdc++。您可以尝试编译一个非常简单的测试:
#include int main(int argc,char*argv[]){std::wstring w;return 0;}
在哪里可以找到这些libboost_filesystem.so文件?我在我的~/usr/include/where中没有看到这些文件?libs(由链接器使用)位于/usr/lib或/usr/local/lib中。heade
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