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
tog++.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