- 浏览: 25767 次
最新评论
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 百度百科
发表评论
-
在Windows下安装Hadoop遇到的几个问题
2012-01-20 01:02 861在Windows下安装Hadoop遇到 ... -
Visual Studio 2008 SP1 补丁安装时发生严重错误-安装失败-解决方法整合版!-分享
2012-01-20 01:02 2892Visual Studio 2008 SP1 补丁 ... -
编译 boost
2012-01-20 01:02 813编译 boost 2011年05月17日 ... -
将 Flex 3 的应用程序迁移到 Flex 4 ―第 1 部分:将 Flex 3 Dashboard 应用程序导入 Flash Builder 4
2012-01-20 01:02 697将 Flex 3 的应用程序迁移到 Flex 4 ―第 1 部 ... -
网络语言进课堂:上海禁止北京面对
2012-01-19 08:51 671网络语言进课堂:上海禁 ... -
跟着我去流浪
2012-01-19 08:51 628跟着我去流浪 2011年09 ... -
关于非诚勿扰
2012-01-19 08:51 662关于非诚勿扰 2012年01月17日 ... -
全国十大美女城市客观排行 2008/03/08 11:0
2012-01-19 08:51 709全国十大美女城市客观排行 2008/03/08 11:0 2 ... -
CUDA的VISUAL STUDIO 2008环境配置(转)
2012-01-17 01:19 1056CUDA的VISUAL STUDIO 2008环境配置(转) ... -
3dsmax使用哪个版本好
2012-01-17 01:19 37493dsmax使用哪个版本好 20 ... -
关于Android的一些设计
2012-01-17 01:19 662关于Android的一些设计 2012年01月13日 ... -
WMI(Windows管理规范)常见问题解答
2012-01-17 01:19 723WMI(Windows管理规范)常见 ... -
下载安卓源代码过程
2012-01-17 01:19 693下载安卓源代码过程 2011年12月23日 linux和 ... -
学编程的同学看看
2012-01-15 20:02 641学编程的同学看看 2009年11月21日 ... -
三种语言的下载者源代码:C Delphi Vb
2012-01-15 20:02 776三种语言的下载者源代码:C Delphi Vb 2010年0 ... -
发几个vb整人小程序代码.第一次发帖.希望大家多多支持
2012-01-15 20:02 1228发几个vb整人小程序代 ... -
VB制作快捷打开电脑里的应用软件比如:我的电脑 网上邻居 等....
2012-01-15 20:01 632VB制作快捷打开电脑里的应用软件比如:我的电脑 网上邻居 等. ... -
VB如何连接帮助文件
2012-01-15 20:01 789VB如何连接帮助文件 2009年12月04日 VB如何 ... -
关于在后台实现前台表单的格式验证设计(annotation+spring aop)iteye技术网站
2012-01-11 12:12 737关于在后台实现前台表单的格式验证设计(annotation+s ... -
java操作word等
2012-01-11 12:12 506java操作word等 2011年05月01日 1、一个 ...
相关推荐
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
编译器: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 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 完全支持 。 全部编译是很痛苦的过程
windows 上由mingw 5.3编译成的boost 1.62支持多线程的静态库,方便大家使用
进入官网http://www.boost.org/,选择最新的版本,这里是1.66.0版本 下载完成之后,解压boost的编译将boost_1_66_0.tar
使用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 ...
为了方便大家使用MinGW(GCC)+_boost.python,特意只做了三个dll,可以很方便地将c++代码转为python模块. libboost_python-mgw45-1_49.dll libboost_python-mgw45-d-1_49.dll python27.dll 这三个文件我已放在资源...
使用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...
_46_1 已经用MinGW编译成功,注意是GCC在windows上的移植版本MinGW,看清楚再下载,大小34.6M,解压之后会达到900多M 这是动态链接库,如果你要头文件和源码的请到这里下载:http://www.boost.org/
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 这是静态编译的库
boost1.51常用库含头文件.zip 2012最新的编译好了的,下载即可使用 只编译了gcc的库 这是适合codeblocks mingw使用的。。注意了。。 环境windows
TDM-GCC是一款Windows平台下GCC编译器,安装使用简单,适用于XP-Win10间的所有操作系统,它可以创建32位 或 64位的二进制文件。 mingw和tdm-gcc是什么关系 相同点: 一、 他们都是用于编译生成Windows应用程序的...
以对话框形式配置boost相关编译参数,如:输出目录、包含/排除类库、编译器版本、平台版本、链接库类型、运行库类型、线程类型、编译版本等,进行个性化编译。支持boost1.55以后版本,支持vs2008~2019,gcc和borland...
boost的linux静态库版本,添加了-fPIC选项,一般的boost静态库没有此选项,动态库在调用的时候会报下面的内容,用了这个库就不会出了(网上教的编译方法都是针对1.55版本的,后面的版本代码都不一样): /usr/bin/...
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...
qtcreator使用mingw gcc 编译的boost1.68库,简单运行官方log例子;包含编译好的boostdll库文件 编译不过pro文件需要 DEFINES += BOOST_LOG_DYN_LINK
boost aarch64交叉编译 1.6.9版本 gcc版本6.5
gcc3.4编译的c++下一代标准库boost ,经测试完全可以使用
ubuntu下用arm-linux-gcc 4.3.2 编译 boost 1.5.1的方式。很全面,很多坑都填平了。