`
gas17gas
  • 浏览: 25725 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

windows下使用gcc编译boost库

 
阅读更多

windows下使用gcc编译boost库
2011年04月20日
  windows下使用gcc编译boost库 收藏 
  在进行之前,首先需要准备的当然是下载boost库的合适版本,下载安装gcc for windows,这些直接google,这里只简单记录编译时的步骤,防止遗忘之用。
  虽然我只是一很菜很菜的菜鸟,可是却非常迷恋gcc+gdb+vim的组合,就算现在的VC如何强大如何方便,在进行一些只使用标准库和win sdk的编程时大部分时候还是在gvim里进行的。
  首先需要得到bjam,将下载下来的boost库文件解压到一个文件夹里(假设其路径为###/boost),则在###/boost /tools/jam/src文件夹下可看到一个批处理文件build.bat,如果直接双击运行的话它会自动检测系统中存在的编译器并选择一个进行编 译,我这里装有vc6.0,vc7.1,gcc4.5.0,结果发现缺省使用的是vc的较高版本即vc7.1。我们的目的是使用gcc编译,这时就需要给 批处理指定参数,如在控制台执行:
  ###/boost/tools/src> build.bat gcc
  即可指定使用gcc。
  完成这一步后同级目录下会生成一个名为bin.ntx86的文件夹,里面就有我们需要的bjam.exe。我想得到的是一个完整编译的版,这时将 bjam.exe拷贝到###/boost/目录下。这时就可以使用它来对整个库进行编译了。boost中有很多库是直接包含头文件即可使用的,而像 regex和thread等则需要编译后才行。bjam.exe有比较多的可选执行参数,可以使用bjam  help来查看。最常用和有用的一些解释如下:
  toolset= //指定编译工具 
  prefix= //指定库文件存放路径,等同stagedir 
  build-type=complete //指定是否生成完全编译版本 
  with- //只编译指定库 
  without- //不编译指定库 
  variant=debug|release //生成debug or release版本 
  link=static|shared //决定使用静态库还是共享库 
  threading=single|multi //决定生成单线程还是多线程库 
  runtime-link=static|shared //是静态还是共享方式链接标准库 
  我这里 想生成的是完全版本,所以启用了 build-type=complete版本,事实证明不太有这个必要,complete版本将上述的 single|multi和static|shared及debug|release在那里都排列组合了一番,生成的库文件就达1GB到2GB,而里面有 很多版本对我们平时的使用来说是不常用到的,按自己的使用需要指定版本来编译比较好。我这里使用的bjam命令行是:
  ###/boost> bjam install  toolset=gcc  prefix="c:\boost"  build-type=complete  without-python
  接下来是漫长的等待时间……按我这个命令行参数在我的机子上编译了足足3个小时(当然,一部分是配置比较烂的后果),一部《2012》看完了都没编 完。
  终于编译完成之后可以看到c:\boost文件夹下有include和lib两个文件夹,.lib和.dll文件在lib下,而头文件则放在 include文件夹下面。当我们使用的时候需要为gcc指定包含c:\boost\include\boost-1_40头文件目录和c:\boost \lib库文件目录。至于如何包含--到现在为止我除了知道每次在编译时指定外还真没找到什么方法来为gcc指定包含路径的方法。
  就以编译asio的chat为例,如编译chat_server的命令行为:
  g++ -D_WIN32_WINNT -Ic:\boost\include\boos-1_40chat_server.cpp -Lc:\boost\lib -llibboost-thread-mingw450-mt-1_40 -llibboost-thread-mingw450-mt-1_40 -lws2_32 -o chat_server.exe
  gcc命令行里面-I表示包含目录,-L表示包含库文件目录,-l表示链接哪个库。system和thread库是程序中明确用到过的,如果不 -l添加它们,那就会报一堆可能含thread和system字眼的错误出来。而ws2_32则是因为调用了winsock的相关东东,需要链接此库,有 关它的内容可以移步ws2_32   淘宝打听和ws2_32.dll   百度百科
分享到:
评论

相关推荐

    boost库1.68版本Linux下编译的动态库和静态库

    Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用

    boost 1.61 编译好的包 win32 TDM-GCC5.1.0 static 这个才是32位的

    编译器:TDM-GCC 5.1.0 位数:32位CPU 链接方式:静态链接 版本:debug和release两个 环境变量: BOOST_ROOT = D:\opensource\cpp\boost1.61_DLR BOOST_LIB = %BOOST_ROOT%\lib //C_INCLUDE_PATH = %BOOST_ROOT%\...

    Linux boost库安装、编译问题小记

    环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux...在windows 平台, linux 平台下编译都很顺利。hp aCC 也宣称对 boost 1.35 完全支持 。  全部编译是很痛苦的过程

    boost 1.62 windows mingw gcc 5.3静态库

    windows 上由mingw 5.3编译成的boost 1.62支持多线程的静态库,方便大家使用

    Linux+boost+python3+gcc编译说明文档1

    进入官网http://www.boost.org/,选择最新的版本,这里是1.66.0版本 下载完成之后,解压boost的编译将boost_1_66_0.tar

    Boost 1.56.0 编译好的二进制库 64bit

    使用TDM-GCC 编译 在 Windows 环境使用 编译条件: b2 install --prefix=boost_1_56_x64 --build-type=complete --without-python --without-mpi toolset=gcc link=static threading=multi runtime-link=static ...

    能使用boost.python的MinGw(GCC)动态链接库

    为了方便大家使用MinGW(GCC)+_boost.python,特意只做了三个dll,可以很方便地将c++代码转为python模块. libboost_python-mgw45-1_49.dll libboost_python-mgw45-d-1_49.dll python27.dll 这三个文件我已放在资源...

    Boost 1.56.0 编译好的二进制库 32bit

    使用TDM-GCC 编译 在 Windows 环境使用 编译条件: b2 install -a --prefix="C:\Tools\boost_1_56" --build-type=complete --without-python --without-mpi toolset=gcc link=static threading=multi runtime-link...

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

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

    Boost C++ Libraries 1.63.0,Windows + MinGW 编译

    Boost C++ Libraries Version 1.63.0 ,由 Windows + MinGW 编译通过,含头文件。...对于QT使用,已经写好一个 boost.pri 文件放在Boost目录下,只需要在 *.pro 工程文件中 include($$PWD\Boost\boost.pri) 即可。

    boost 1.61 编译好的包 win32 TDM-GCC5.1.0 static

    boost 1.61 win32 TDM-GCC5.1.0 static 这是静态编译的库

    boost1.51常用库含头文件

    boost1.51常用库含头文件.zip 2012最新的编译好了的,下载即可使用 只编译了gcc的库 这是适合codeblocks mingw使用的。。注意了。。 环境windows

    GCC编译器(TDM-GCC) v5.1.0 windows 64bit

    TDM-GCC是一款Windows平台下GCC编译器,安装使用简单,适用于XP-Win10间的所有操作系统,它可以创建32位 或 64位的二进制文件。 mingw和tdm-gcc是什么关系 相同点: 一、 他们都是用于编译生成Windows应用程序的...

    Boost可视化编译工具

    以对话框形式配置boost相关编译参数,如:输出目录、包含/排除类库、编译器版本、平台版本、链接库类型、运行库类型、线程类型、编译版本等,进行个性化编译。支持boost1.55以后版本,支持vs2008~2019,gcc和borland...

    boost_linux_fPIC.rar

    boost的linux静态库版本,添加了-fPIC选项,一般的boost静态库没有此选项,动态库在调用的时候会报下面的内容,用了这个库就不会出了(网上教的编译方法都是针对1.55版本的,后面的版本代码都不一样): /usr/bin/...

    Windows C++编译器:MinGW64-GCC13.2.0-包含多个第3方库

    GCC 13.2.0 mingw-w64 11.0.1 Boost 1.84.0 FreeType 2.13.2 glbinding 3.3.0 GLFW 3.3.9 GLM 0.9.9.8 libjpeg-turbo 3.0.1* libogg 1.3.5 libpng 1.6.40 libvorbis 1.3.7 PCRE2 10.42** SDL 2.28.5 SDL_mixer 2.6.3...

    qtBoostDemo.rar

    qtcreator使用mingw gcc 编译的boost1.68库,简单运行官方log例子;包含编译好的boostdll库文件 编译不过pro文件需要 DEFINES += BOOST_LOG_DYN_LINK

    aarch64_boost_1.69.zip

    boost aarch64交叉编译 1.6.9版本 gcc版本6.5

    libs.rar_Boost

    gcc3.4编译的c++下一代标准库boost ,经测试完全可以使用

    boost移植到安卓的方式

    ubuntu下用arm-linux-gcc 4.3.2 编译 boost 1.5.1的方式。很全面,很多坑都填平了。

Global site tag (gtag.js) - Google Analytics