Windows+VS2013的Boost库编译

由于需要编译kriging插值库,而kriging库的编译需要用到boost库,所以需要先将boost库配置好

以下文章转自:https://blog.csdn.net/yeahxiyi/article/details/53096053

Boost是一个非标准库,包含着丰富的小工具,可参考《Boost程序库完全开发指南:深入C++"准"标准库(第3版)》一书(该书使用Boost1.57版本)进行使用!

1.下载源代码

Boost官方下载地址:http://www.boost.org/users/history/

选择需要下载的版本(最新版本为1.62,最低版本为1.10.3),点击Download按钮,跳转至下载页选择.zip或.7z格式压缩包下载

2.编译源代码

0)解压源代码,得到booststrap.bat文件

1)生成编译工具

点击booststrap.bat文件,弹开windows下终端,等待30秒生成b2和bjam两种编译工具

2)编译生成代码

按Win+E键输入cmd打开终端,利用命令cd切换到boost解压缩的所在文件夹下,利用生成的b2或者bjam命令进行编译生成库文件

命令1:cd  [boost解压所在路径] 

命令2:.\b2 --help   输出帮助信息了解boost编译的选项

命令3:.\b2 --buildtype=complete install 同时生成Debug和Release下的所有库,默认路径在C:\Boost\文件夹下

等待20分钟...

4)生成头文件和库文件

Boost默认生成的头文件和库文件路径在C:\Boost\文件夹下的include和lib文件夹下,编译路径可在编译时改变,详情见.\b2 --help命令中介绍

3. VS2013下测试用例

1)新建一个VS2013工程

2)新建Debug和Release属性列表

通用属性->VC++目录->包含目录:添加头文件路径(C:\Boost\include\boost-1_59)

通用属性->VC++目录->库目录:添加库文件路径(C:\Boost\lib)

链接器->输入->附加依赖项:添加库文件名字(区分Debug和Release)

Debug下:

 libboost_atomic-vc120-mt-gd-1_59.lib   
 libboost_chrono-vc120-mt-gd-1_59.lib    
 libboost_container-vc120-mt-gd-1_59.lib 
 libboost_context-vc120-mt-gd-1_59.lib   
 libboost_coroutine-vc120-mt-gd-1_59.lib   
 libboost_date_time-vc120-mt-gd-1_59.lib 
 libboost_exception-vc120-mt-gd-1_59.lib    
 libboost_filesystem-vc120-mt-gd-1_59.lib  
 libboost_graph-vc120-mt-gd-1_59.lib  
 libboost_iostreams-vc120-mt-gd-1_59.lib 
 libboost_locale-vc120-mt-gd-1_59.lib  
 libboost_log_setup-vc120-mt-gd-1_59.lib
 libboost_log-vc120-mt-gd-1_59.lib 
 libboost_math_c99f-vc120-mt-gd-1_59.lib  
 libboost_math_c99l-vc120-mt-gd-1_59.lib 
 libboost_math_c99-vc120-mt-gd-1_59.lib
 libboost_math_tr1f-vc120-mt-gd-1_59.lib 
 libboost_math_tr1l-vc120-mt-gd-1_59.lib  
 libboost_math_tr1-vc120-mt-gd-1_59.lib 
 libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib 
 libboost_program_options-vc120-mt-gd-1_59.lib 
 libboost_random-vc120-mt-gd-1_59.lib  
 libboost_regex-vc120-mt-gd-1_59.lib 
 libboost_serialization-vc120-mt-gd-1_59.lib
 libboost_signals-vc120-mt-gd-1_59.lib
 libboost_system-vc120-mt-gd-1_59.lib
 libboost_test_exec_monitor-vc120-mt-gd-1_59.lib 
 libboost_thread-vc120-mt-gd-1_59.lib 
 libboost_timer-vc120-mt-gd-1_59.lib 
 libboost_unit_test_framework-vc120-mt-gd-1_59.lib 
 libboost_wave-vc120-mt-gd-1_59.lib 
 libboost_wserialization-vc120-mt-gd-1_59.lib

Release下库:

 libboost_atomic-vc120-mt-1_59.lib   
 libboost_chrono-vc120-mt-1_59.lib  
 libboost_container-vc120-mt-1_59.lib   
 libboost_context-vc120-mt-1_59.lib    
 libboost_coroutine-vc120-mt-1_59.lib   
 libboost_date_time-vc120-mt-1_59.lib    
 libboost_exception-vc120-mt-1_59.lib    
 libboost_filesystem-vc120-mt-1_59.lib   
 libboost_graph-vc120-mt-1_59.lib   
 libboost_iostreams-vc120-mt-1_59.lib     
 libboost_locale-vc120-mt-1_59.lib     
 libboost_log_setup-vc120-mt-1_59.lib    
 libboost_log-vc120-mt-1_59.lib      
 libboost_math_c99f-vc120-mt-1_59.lib     
 libboost_math_c99l-vc120-mt-1_59.lib    
 libboost_math_c99-vc120-mt-1_59.lib     
 libboost_math_tr1f-vc120-mt-1_59.lib      
 libboost_math_tr1l-vc120-mt-1_59.lib    
 libboost_math_tr1-vc120-mt-1_59.lib     
 libboost_prg_exec_monitor-vc120-mt-1_59.lib     
 libboost_program_options-vc120-mt-1_59.lib     
 libboost_random-vc120-mt-1_59.lib    
 libboost_regex-vc120-mt-1_59.lib     
 libboost_serialization-vc120-mt-1_59.lib     
 libboost_signals-vc120-mt-1_59.lib      
 libboost_system-vc120-mt-1_59.lib      
 libboost_test_exec_monitor-vc120-mt-1_59.lib      
 libboost_thread-vc120-mt-1_59.lib     
 libboost_timer-vc120-mt-1_59.lib     
 libboost_unit_test_framework-vc120-mt-1_59.lib     
 libboost_wave-vc120-mt-1_59.lib     
 libboost_wserialization-vc120-mt-1_59.lib    

3)测试程序

#include <iostream>
#include <boost/thread/thread.hpp>
 
using namespace std;
 
void hello()
{
	std::cout << "Hello world, I'm a Boost thread!" << std::endl;
}
 
void main(void){
	boost::thread thrd(&hello);
	thrd.join();
	system("pause");
}

4)输出结果

Ok,到此为止,Boost已经全部编译测试通过,可以开始深入使用了~

另外对于dos下库编译的命令也可以借鉴:https://blog.csdn.net/guanyijun123/article/details/52290349(生成的比较少)

https://blog.csdn.net/xie1xiao1jun/article/details/50477073(可以生成动态库)

猜你喜欢

转载自blog.csdn.net/qq_16334327/article/details/82859229