boost库在windows下使用时的编译、链接注意事项(不断更新)
来源:互联网 发布:计网tcp编程 编辑:程序博客网 时间:2024/06/04 23:23
*.windows下,VC和gcc编译出的库是不能通用的,只能各搞一套
*.大部分的boost程序都需要链接boost_system这个库
*.使用asio时,由于asio在windows下的实现用了winsock,所以必须加头文件和链接库的目录
如果用VC的编译器,需要添加头文件目录“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include”(VC2010下),库文件目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib(VC2010)下,编译器将自动链接ws2_32.lib(有时还包括mswsock.lib)文件,无需手工指定链接或者在源码中添加预定义宏#pragma comment(lib, "ws2_32.lib")。这是因为boost的头文件里已经定义了
如果使用gcc的编译器,需要手工指定库文件目录,默认应该在gcc的安装目录下,必须手工指定链接ws2_32.a和mswsock.a文件
*.使用boost::thread时,可能会遇到以下问题
gcc静态链接boost_thread库时,即使添加了库文件,也会报告大量的_imp__XXX错误,以下链接都描述了这个错误的原因
http://novus.pixnet.net/blog/post/27061690-mingw-4.5-%2B-boost-1.44-%E7%9A%84%E9%B3%A5%E4%BA%8B
http://www.progtown.com/topic796791-boost-thread-under-mingw-static-configuration.html
解决方法
https://svn.boost.org/trac/boost/ticket/4614
https://svn.boost.org/trac/boost/ticket/4921
http://lajabs.net/2011/03/29/boost_thread%E5%BA%93%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98/
其实根源就在于boost thread在windows下,当使用gcc时默认是用dll链接(动态链接),于是链接静态库的时候,链接器会报告导入函数找不到,使用gcc的预编译命令加上BOOST_THREAD_USE_LIB定义让boost链接静态库来解决问题
这个问题在boost::thread文档Using and building the library里的第二段有描述
http://www.boost.org/doc/libs/1_53_0/doc/html/thread/build.html
- boost库在windows下使用时的编译、链接注意事项(不断更新)
- boost库在windows下的编译和使用
- boost 在windows下的编译及使用
- BOOST库的在windows下的编译小记
- 在windows下编译boost 1.32库
- 在Windows下编译Boost
- “Windows下编译boost程序库”和“使用boost库的编译环境的设置”
- windows下使用gcc编译boost库
- windows下使用gcc编译boost库
- windows下使用gcc编译boost库
- Windows下使用MinGW编译boost库
- pthread 静态编译版本在Windows下使用时的注意事项
- 关于Boost库在VS2010下的编译使用(转)
- 关于Boost库在VS2010下的编译使用(转)
- windows 下boost库的简单编译
- windows下!boost库的编译选项
- 在windows下的qcreator中使用boost库
- boost库在window下的编译
- 设计 iOS 应用时需要知道的 5 件事
- 基于 JUnit 的全局单元测试程序
- [Java Beginner] Problem to "Could not find the main class"
- LeetCode 38: N-Queens
- 虚拟化技术概要之VMM结构
- boost库在windows下使用时的编译、链接注意事项(不断更新)
- android中scrollTo和scrollBy的理解
- [20130408]002—VB还是C#?web.config……
- myibatis的学习
- 图像列表控件(CImageList)
- 解决终端命令出错就退出当前login带来的不便。
- 【自己动手写数据结构】 -- 有向带权图的邻接矩阵存储的简单实现
- 剖析 Linux hypervisor
- hbase使用中一个问题