shark版本 Shark3.0
boost版本 boost1.59(注:boost1.60把ice_not给取消了,会导致shark编译错误,所以使用boost1.59,也不知道现在这个错误修复了没有)


编译boost

boost下载完成之后进入目录运行bootstrap.bat,运行完成之后会发现目录下面生成了bjam.exe和b2.exe两个可执行文件,运行这两个中的任意一个就会开始编译boost了,编译完成之后需要给环境变量添加BOOST_ROOT,值为boost的根目录。

如果有特殊要求需要编译64位boost的话可以按照下面的方式:
用VS的64位命令行工具(可以在开始菜单栏里面找到),打开这个工具之后进入boost的目录,执行bootstrap.bat然后执行以下命令:

bjam --build-type=complete toolset=msvc-12.0 threading=multi link=static address-model=64

上面的命令编译出来是静态库,如果是想要动态库的话就把static变成shared即可。


编译shark3.0

运行CMake,进入shark目录,生成目录我也选择在其目录,点击configure之后出错,告诉我找不到boost的lib,然后有一个选项是USE_STATIC_BOOST_LIB,把这个勾选上(因为之前我生成的是boost的静态库),点击configure,成功(即没有错误),然后generate。

这时候在shark目录下面已经有VS工程文件了,打开工程,点击编译,等待许久之后可能会遇到错误,显示不认识什么什么东西来着,具体是什么忘记了,笔记本上也没记载,需要手动改三个工程的属性,把一个什么东西当作变量来着……忘记了……记着应该是这里的问题。反正问题也不难,百度了一下立刻就出来了。


使用shark

使用shark的工程需要添加附加引用目录、附加库引用目录以及附加库依赖(一个重要的库文件)。附加引用目录添加boost的根目录和shark的include目录,附加库引用目录添加shark/lib/Debug( or Release)和boost/stage/lib,shark的Debug库和Release库并不兼容。

附加引用目录(Linker->Input->Addtional Dependencies)要添加shark_debug.lib或shark.lib,根据工程当前是发布还是调试来调整。

另外,在VC++ Directories里面设定附加引用目录和附加库引用目录和在C++与Linker里面分别设定是一样的,但是附加库依赖必须在Linker里面设置。


位数相关

boost 32位可以支持编译32位shark。
boost 64位可以支持编译64位shark。
编译多少位的shark要从CMake那里选择,如果是要编译64位的shark的话需要选择带Win64的编译器。


现在shark3.1.0已经修复了不支持boost1.60的错误。


liyu34
43 声望1 粉丝

软件工程在读研究生一枚