逐步使用Cygwin中的Boost
创建一个新项目
![enter image description here](https://istack.dev59.com/kS0bF.webp)
最好按照本教程中给出的名称精确地命名。之后如果出现问题,可以更容易地找到错误。
我认为我不需要提醒所有T:\
都必须用您的驱动器替换。
项目名称:Boost-cyg-Test
![enter image description here](https://istack.dev59.com/JQ2iq.webp)
现在你的项目应该像这样:
![enter image description here](https://istack.dev59.com/B5fnC.webp)
打开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为我们创建它。
添加新的工具集合。
完成此对话框后,我们应该找到上面显示的设置。(C++代码辅助选项)。
将所有库复制到正确的位置。
让我们创建一个名为“boost”的新文件夹。
使用搜索工具,在编译好的Boost文件夹中搜索*.a
我的Boost是使用共享选项编译的,所以我们可以找到:
对于我们的简短应用程序,我们只需要两个文件。
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
文件。 使用“添加库”(Add Library)导航到
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
![输入图像描述](https://istack.dev59.com/mTi9D.webp)
这有点令人困惑。看起来好像是一个 .dll
文件,但实际上它是一个 .a
文件。
在 main.cpp 中设置断点。现在我们开始调试。
![输入图像描述](https://istack.dev59.com/a0WL0.webp)
我已经用箭头标出了两个重要的库。
所有的库都被找到了,在 make 完成后,在断点处停止了。
输出结果:
![输入图像描述](https://istack.dev59.com/x7rWo.webp)
为 Cygwin 构建 Boost
对于所有想要创建具有共享库的 Boost 的人。
下载 boost_1_53_0.zip
在 ?:\cygwin 目录下创建一个文件夹。
boost_1_53_0
![输入图像描述](https://istack.dev59.com/lBZpj.webp)
将 zip 文件解压缩到该目录中。
它应该看起来像这样:
![输入图像描述](https://istack.dev59.com/RdgSr.webp)
打开一个 cmd 窗口,cd 到 boost_1_53_0
目录。
为了进行干净的构建,我们需要一个只包含 cygwin home
和 bin
的 PATH。
在 cmd 中输入:
SET PATH=T:\cygwin;T:\cygwin\bin
并测试路径。
PATH
![enter image description here](https://istack.dev59.com/EIR4E.webp)
Type
bootstrap.bat
![图片描述:键盘上的Type键](https://istack.dev59.com/JGzvs.webp)
类型
.\b2 --build-dir=T:\boost-cyg toolset=gcc variant=debug link=shared runtime-link=shared
一段时间后,构建完成了。
现在您拥有了与教程中使用的相同环境。
如果出现错误:
gcc not found
请复制(而不是重命名)
i686-pc-cygwin-gcc-4.5.3.exe
到
?:\cygwin\bin
文件夹中,例如:(名称可能有所不同)。
并将
i686-pc-cygwin-g++-4.exe
复制为
g++.exe
希望能对您有所帮助。
#include <string> int main(int argc, char *argv[]) { std::wstring w; return 0; }
- Markku K.