Win7下MingW编译Boost Asio程序的错误解决方法
2013-08-21 18:46
344 查看
使用MingW学习Boost真是一波三折,谁要是想少走弯路还是直接用windows自带的那些编译器吧,开源的东东在微软的平台上真的很不受待见也很麻烦。
先说下编译环境:WIN7 64位旗舰版,MingW 4.4,Boost版本1.53,编译库时都生成成了静态库(.a),源文件是boost asio文档里的第一个例子,文件名改为timer_sync.cpp。
链接时遇到了两个问题:
第一个问题是由于没有指定相应的宏选项,需要用-D参数解决,参考链接:http://boost.2283326.n4.nabble.com/boost-asio-UnregisterWaitEx-RegisterWaitForSingleObject-has-not-been-declared-td4633963.html。
第二个问题是因为没有链接ws2_32.dll这个库。
首先,为了敲命令方便,把需要链接的库放到本目录下:拷贝Boost主目录下lib目录的libboost_date_time-mgw44-mt-1_53.a和libboost_system-mgw44-mt-1_53.a到本目录,重新命名时去掉-mgw44-mt(当然如果你敲命令不觉得累可以不重命名,另外也可以重命名为更短的文件名,看个人喜好。)
第二,去网上下载sw_32.dll这个文件,我是在这儿下的
http://cn.dll-files.com/ws2_32.dll.html
,下载完了杀下毒,解压,并拷贝到本目录下。
第三,输入以下命令:
注意这里是用了0x0501这个宏参数,表明平台是XP,不过win7可以兼容。
警告什么的就不用管了,生成了timer_sync.exe程序,运行一下应该没有问题,程序在等待5秒后输出字符串。
先说下编译环境:WIN7 64位旗舰版,MingW 4.4,Boost版本1.53,编译库时都生成成了静态库(.a),源文件是boost asio文档里的第一个例子,文件名改为timer_sync.cpp。
链接时遇到了两个问题:
第一个问题是由于没有指定相应的宏选项,需要用-D参数解决,参考链接:http://boost.2283326.n4.nabble.com/boost-asio-UnregisterWaitEx-RegisterWaitForSingleObject-has-not-been-declared-td4633963.html。
第二个问题是因为没有链接ws2_32.dll这个库。
首先,为了敲命令方便,把需要链接的库放到本目录下:拷贝Boost主目录下lib目录的libboost_date_time-mgw44-mt-1_53.a和libboost_system-mgw44-mt-1_53.a到本目录,重新命名时去掉-mgw44-mt(当然如果你敲命令不觉得累可以不重命名,另外也可以重命名为更短的文件名,看个人喜好。)
第二,去网上下载sw_32.dll这个文件,我是在这儿下的
http://cn.dll-files.com/ws2_32.dll.html
,下载完了杀下毒,解压,并拷贝到本目录下。
第三,输入以下命令:
注意这里是用了0x0501这个宏参数,表明平台是XP,不过win7可以兼容。
警告什么的就不用管了,生成了timer_sync.exe程序,运行一下应该没有问题,程序在等待5秒后输出字符串。
相关文章推荐
- MinGW/GCC/CodeBlocks 等在 Win7 编译出现 Permission Denied 错误 - 解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- Linux C++程序编译错误解决方法
- asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法
- win7 64位平台编译的程序在XP 32位平台无法运行的解决方法
- qextserialport-1.2win-alpha在Win7下Qt 5.0.2 MinGW编译遇到的问题及解决方法
- VC++ 2005编译出程序出现“应用程序配置错误”的解决方法
- VS2013下MFC和.net混合编程编译XP兼容程序时的C1107错误的解决方法
- asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法
- 使用wxWidgets编译的Windows Mobile程序运行时提示“SHCreateMenuBar failed”错误的解决方法
- VS2003下DirectShow范例程序LNK2019编译错误的解决方法
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- MinGW 编译出现g++: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found错误的解决方法
- linux下编译C++程序出现错误 “*** stack smashing detected ***, eclipse解决方法
- Win7上安装32位Oracle客户端错误解决方法:[INS-30131] 执行安装程序验证所需的初始设置失败
- eclipse编译svn下载的程序代码 错误解决方法