`
public0821
  • 浏览: 238042 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mingw环境下boost库的编译和使用

阅读更多

    首先到boost的网站上下载最新的BOOST源代码和编译好的JAM,地址:http://www.boost.org/users/download/ 。这里下载的是 boost-jam-3.1.17-1-ntx86.zipboost_1_37_0.tar.bz2


这里假设mingw的安装目录为C:\MinGW

1、将C:\MinGW\bin设置到环境变量的PATH中

 

2、解压下载下来的两个包,将bjam.exe拷贝到boost1.37的解压目录中。最后文件目录格式如下


 

3、在CMD下进入boost1.37的解压目录,运行bjam "toolset=gcc" install


 

4、等待一段时间后,会在C盘根目录下生成一个boost文件夹,里面放着生成的头文件以及LIB和DLL文件。

5、将C:\Boost\include\boost-1_37目录下的boost文件夹拷贝到C:\MinGW\include下面

6、将C:\Boost\lib下的lib文件拷贝到C:\MinGW\lib,将C:\Boost\lib下的dll文件拷贝到C:\MinGW\bin。


     C:\Boost\lib下的lib文件有很多是类似的,如关于graph的有boost_graph-mgw42-mt-1_37.lib、boost_graph-mgw42-mt.lib、libboost_graph-mgw42-mt-1_37.lib、libboost_graph-mgw42-mt.lib。其中前面带lib的是静态链接库,不带 lib 的是动态连接库,至于带boost版本号和不带版本号的有什么区别暂时还不清楚。




下面用eclipse创建一个C++工程测试一下,代码如下

#include <iostream>
#include <string>
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;

/**
 * 输出C盘目录下的所有文件和目录名称
 */
int main()
{
	fs::path full_path("c:");
	fs::directory_iterator end_iter;
	for ( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr )
	{
		std::cout << dir_itr->path().filename() << std::endl;
	}
}

 

     同时添加连接选项,由于filesystem依赖system,所以这里的连接选项中将system也要加上,最终结果如下图


 

编译运行该工程,即可 打印输出 C盘根目录下所有文件和文件夹名称。

  • 大小: 7.8 KB
  • 大小: 73.2 KB
  • 大小: 7.3 KB
  • 大小: 49.6 KB
分享到:
评论
5 楼 shfzhzhr 2011-05-23  
0.0~~~
4 楼 edon 2010-05-25  
edon 写道
不知哪里出的问题,跟您文章里有几个不同点:

1. bjam编译后的library,只有.a文件,没有lib文件。
编译命令: bjam --toolset=gcc --with-system --with-filesystem stage debug release install

2. 我拷贝了所有的头文件到MingW的默认includes目录,且拷贝了所有的.a文件到MingW默认的lib目录下,然后按照文章里,配置了项目的Linker的Libraries,但是就是报错:
"cannot find -llibboost_filesystem-mgw34-mt"

如果可以的话,希望能给点提示。



不好意思,找到原因了,Linker的Libraries里应该增加为:
boost_system-mgw34-mt-d-1_43
boost_filessystem-mgw34-mt-d-1_43

之类的。

mingw连接静态库的时候,只会自动增加prefix lib和.a的扩展名,然后在可用的路径下寻找对应库文件。
3 楼 edon 2010-05-25  
不知哪里出的问题,跟您文章里有几个不同点:

1. bjam编译后的library,只有.a文件,没有lib文件。
编译命令: bjam --toolset=gcc --with-system --with-filesystem stage debug release install

2. 我拷贝了所有的头文件到MingW的默认includes目录,且拷贝了所有的.a文件到MingW默认的lib目录下,然后按照文章里,配置了项目的Linker的Libraries,但是就是报错:
"cannot find -llibboost_filesystem-mgw34-mt"

如果可以的话,希望能给点提示。
2 楼 gemscorpio 2009-02-21  
正好要找这个东西,呵呵
1 楼 ruobent 2008-12-17  
没人顶啊。。。

相关推荐

    boost静态库win10 mingw730_64编译

    完成上述步骤后,你将拥有在Win10 64位环境下,使用MinGW730_64编译的Boost静态库,包括了多线程(mt)和调试(d)版本,同时提供了64位(x64)和32位(x32)库文件。这些库文件可以在你的项目中使用,无需在运行时...

    mingw下使用的boost库

    然后,配置MinGW的编译环境,这通常包括设置环境变量以确保编译器可以找到所需的头文件和库。 2. **构建Boost**:由于下载的压缩包中仅包含预编译的库文件,对于某些特定的MinGW配置或Boost版本,可能需要自行编译...

    基于Qt的MinGw编译PCL及其所有依赖库boost、eigen、flann、qhull、VTK

    在本文中,我们将深入探讨如何在Windows环境下使用Qt与MinGW编译Point Cloud Library (PCL) 及其依赖库,包括boost、eigen、flann、qhull和VTK。这一过程对于开发者来说至关重要,因为能够确保在Qt环境中直接运行PCL...

    个人编译的boost1.49库,MinGW4.7,Release,包含*.dll和*.a

    标题中的“个人编译的boost1.49库,MinGW4.7,Release,包含*.dll和*.a”指的是一个特别的软件开发资源包,主要用于C++编程环境。Boost库是一个广泛使用的开源C++库集合,它提供了大量的工具、函数和类,以帮助开发者在...

    boost1.71_MinGW7.3(32/64位动态库、静态库)

    Boost库是C++编程语言的一个开源库集合,它提供了许多现代C++的工具和库,以帮助开发者提高效率,减少代码复杂性,并充分利用C++语言的功能。标题中的"boost1.71_MinGW7.3"指的是Boost库的1.71版本,这是专门为使用...

    Boost库 版本1_46_1 (已经用MinGW编译好了)

    _46_1 已经用MinGW编译成功,注意是GCC在windows上的移植版本MinGW,看清楚再下载,大小34.6M,解压之后会达到900多M 这是动态链接库,如果你要头文件和源码的请到这里下载:http://www.boost.org/

    个人编译的boost1.49库,MinGW4.5,Release

    在MinGW4.5环境下,这些编译好的动态链接库文件可以直接被C++项目使用,无需重新编译,极大地简化了开发流程。然而,需要注意的是,由于这是个人编译的版本,可能并未包含所有Boost库组件,也可能不兼容最新的操作...

    bjam.exe boost库编译使用的工具

    BJAM.exe 和 B2.exe 是 Boost 库编译过程中使用的两个关键工具,它们都是 Boost.Build 系统的一部分,用于自动化构建 Boost 库的过程。Boost 库是一个广泛使用的开源 C++ 库集合,提供了大量功能丰富的模块,如线程...

    boost 1.62 windows mingw gcc 5.3静态库

    MinGW(Minimalist GNU for Windows)是一个GCC(GNU Compiler Collection)的集合,它允许在Windows环境下使用GCC进行编译。MinGW 5.3是这个集合的一个特定版本,提供了GCC 5.3编译器,该编译器支持C++11和C++14的...

    boost1.51个人编译版本MinGW4.7,ReleaseDLL,包括*.a和*.dll

    在本编译版本中,Boost1.51被配置为使用MinGW4.7来构建,并且是针对Release模式编译的,这意味着生成的库文件(`.a`静态库和`.dll`动态链接库)是优化过的,以提高运行时性能。 "Release DLL"表示这是动态链接库的...

    CEGUI-DEPS-0.7.x-r1-mingw(minGw 编译Osg 依赖库)

    minGW(Minimalist GNU for Windows)是一个开源的Windows上的GCC(GNU Compiler Collection)移植,它提供了在Windows平台下使用GNU工具链进行C和C++编程的能力。 描述中提到,这个依赖库是"minGW编译OSG必须用到...

    Windows和Solaris上Boost安装和编译

    6. **安装Boost**: 编译完成后,使用bjam的`install`目标将库文件安装到你指定的目录。 **Solaris上的Boost安装和编译** 1. **获取Boost源码**: 同样,从Boost官网下载源码并解压。 2. **配置环境**: Solaris通常...

    mingw4.7编译好的boost_55_0 (codeblocks)下直接用

    在本资源中,我们讨论的是针对MinGW 4.7编译器已经预先编译好的Boost库版本55.0,适合在CodeBlocks这样的开发环境中直接使用。 MinGW(Minimalist GNU for Windows)是一个开源的Windows上的GCC(GNU Compiler ...

    个人编译的boost1.51库,MinGW4.7,DebugDLL,包含*.dll和*.a

    在Windows环境下,开发人员可以使用MinGW来编译和链接C++代码,而无需依赖Microsoft Visual Studio等其他IDE。对于那些不希望或不能使用Visual Studio的开发者来说,这是一个非常实用的选择。 "DebugDLL"表明这个...

    个人编译的boost1.50库,MinGW4.7,Debug, 包含*.dll和*.a

    在使用Boost1.50和MinGW4.7进行开发时,确保你已经正确配置了编译器的包含路径和库路径,这样编译器才能找到Boost头文件和库文件。同时,如果你使用的是动态链接库,还需要在链接阶段指定相应的.lib文件,这是...

    Boost1.78_minGW730_64位_静态_Debug和Release.rar

    "minGW730"是指使用的是Minimalist GNU for Windows的7.3.0版本,这是一款为Windows平台提供GNU开发工具集的开源软件,包括GCC(GNU Compiler Collection)编译器,使得开发者可以在Windows环境下使用GCC来编译C++...

    个人编译的boost1.50库,MinGW4.7,Release,包含*.dll和*.a

    使用这个编译好的库,开发者可以在MinGW环境下快速地集成Boost功能,而无需自己编译整个库,这可以节省大量的时间和资源。不过,要注意的是,由于这是一个个人编译的版本,可能存在某些特定的配置或优化,因此在实际...

    qt5.2.0编译boost库文件

    本文将详细介绍如何在Qt5.2.0环境下编译并集成Boost库,以充分利用Boost的强大功能。 首先,Boost库是一个开源的C++库集合,它提供了许多标准库没有的高级功能,如多线程、智能指针、正则表达式、文件系统操作等。...

    OpenSceneGraph3.4 mingw 编译带版本后选项

    在编译过程中,你可能还需要确保其他依赖项已安装,例如Qt(如果使用OSG的Qt界面模块)、Boost库等。同时,根据你的需求,你可能还需要配置额外的选项,如选择启用或禁用某些功能模块,调整优化级别等。 总之,这个...

    Boost1.78_minGW730_32位_静态_Debug和Release.rar

    使用QtCreator自带编译器minGW730-32位编译的Boost静态库,包括Debug和Release的库文件

Global site tag (gtag.js) - Google Analytics