Shark 在windows 下的编译

时间:2022-01-27 08:42:47

1、使用 svn 客户端 从 https://svn.code.sf.net/p/shark-project/code/trunk/Shark 下载源代码

2、下载CMake工具,打开gui界面后,遇到如下问题,见截图:

Shark 在windows 下的编译

报错信息是(截图中没有):CMake Error: The source directory "OUTPUT_VARIABLE" does not exist

3、上面的问题已经找到,是cmake使用不当,开始没有指定source code 的目录直接config,关闭cmake,删除cmake产生的临时文件后。

   重新来一次就好了。

4、这时候报告找不到boost1.5.4库,把boost库目录指定后,又报告“Could not find the following static Boost libraries:”;这是因为    boost本身还未安装编译,生成这些库。

5、打开vs2010的命令行,cd 到 boost的根目录,运行 bootstrap.bat,这个脚本运行花了大约几分钟

6、脚本运行完毕后,产生了bjam.exe

7、为了万无一失,运行 bjam --build-dir=build-tmptoolset=msvc --build-type=complete stage ,上面的命令是生成所有可能的   单、多线程、静态、动态库

8、boost的编译需要较长时间,在我的8G、i5的电脑上,大约用了2个半小时

9、boost编译完成后,再次使用cmmake的GUI工具,设定源代码根目录和生成项目文件的目录,设置完毕后,直接config,这是cmake会提示你

    指定boost的根目录,直接把刚才的boost根目录设置上即可。除了指定boost根目录之外,cmake还给了你选择编译选项(用宏定义来控制     的,不是一般意义上的编译器选项)的机会,除了生成       document的那个选项没选择外,其他的都勾上了。因为那个选项需要doxygen,   我暂时也不想安装。

10、点击按钮config,一切OK。然后,点击按钮gennerete,没有报错了,一切OK

11、打开刚才设定的“生成项目文件的目录”,会发现一个all.sln和大量的vs工程文件

12、至此,windows平台下用vs工具编译shark的工作基本完成

13、打开VS,生成所有即可(项目不少,200来个,太震撼了,花了大约半小时)。

不过,在生成的而过程中,遇到了个问题,有4个project生成失败了。不过好在不是shark的核心代码项目。报告的失败原因是2个:一个是std命名空间中没有找到 isNan,另一个是sqrt的调用,函数重载仲裁歧义。这个问题,我打算用修改src的方式解决,不难。