03_源码编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03_源码编译相关的知识,希望对你有一定的参考价值。

参考文件

http://www.roboticslibrary.org/tutorials/build-windows

下载CMake

如果要自己编译,那么需要下载不低于2.8.11的CMAKE,我下的是下面的版本

cmake-3.6.0-rc1-win64-x64.msi

编译准备

技术分享

根据文档,该库是通过VS2010的编译器编译的:

技术分享

技术分享

注意:一定要把BUILD_RL_**的选全,这样才能构建完整的版本

怎么知道依赖哪些模块

E:\\01_workspace\\05_RL\\rl-0.6.2\\Modules可以查询

配置,也就是解决-NOTFOUND的地方

1.勾上Advance

技术分享

2.添加编译参数

        set VCBUILD_DEFAULT_OPTIONS=/M%NUMBER_OF_PROCESSORS%

set CL=/MP

技术分享

3.修改安装路径(默认是安装到C盘)

技术分享

4.尝试生成下,即可发现需要配置哪些项

5.下载eigen3

    下载好eigen3之后,设置路径

技术分享

    然后点击gen继续生成试试

技术分享

6.下载设置好boost

技术分享

7.。。。。。等等其他的库的编译安装,依赖的东西太多,难得都挨个下载编译

    简单办法:直接把安装版下载下来,然后安装好,他自动会把依赖的库和头文件都放到本地磁盘。

    然后这里就直接全部都用安装版附带的库,方便又好用!

一定要把错误全部解决完!lib可以直接指定到对应的lib文件。

配置完如下:

技术分享

编译

然后点击<generate>,即可生成完毕!

到build目录,即可看到生成好的项目文件

技术分享

技术分享

全部编译(这肯定会有编译错误,因为有些库的路径不对,或者有些库的依赖不全,需要挨个处理下),比如wrlview这个程序,还需添加如下几个lib。

技术分享

编译问题:

1.无法解析的外部符号 "public: class QWidget * __thiscall SoQtComponent::getWidget(void)const " (?[email protected]@

    添加E:\\Program Files (x86)\\rl-0.6.2\\lib\\soqt1d.lib

2.无法解析的外部符号 "public: void __thiscall SoBase::ref(void)const " (?[email protected]@@QBEXXZ),该符号在函

    添加E:\\Program Files (x86)\\rl-0.6.2\\lib\\coin3d.lib

3.无法解析的外部符号 _xmlSaveFormatFile,该符号在函数 "public: void __thiscall rl::xml::Document::save(class std::basic_string<char,s

    添加E:\\Program Files (x86)\\rl-0.6.2\\lib\\libxml2.lib

其实这个问题可以在configuration时解决,就是lib指定是哪个lib即可:

技术分享

最后编译通过:

技术分享

 

完毕

编译好的lib存放的路径是:

E:\\01_workspace\\05_RL\\rl-0.6.2\\build\\src\\rl\\[name]\\[Debug]\\下面。这样就有debug版本的库了

安装

我们可以根据需要把RL的debug版本库拷贝到E:\\Program Files (x86)\\rl-0.6.2\\lib(这个目录是windows安装版本生成的,RL的库和依赖的库都在这个目录)。

因为RL安装文件是没有提供Debug版本的RL库的,而其他的比如solid等第三方库就有2个版本。

这里提供一个安装脚本:

技术分享

 

效果

安装了自己编译的库之后,就可以调试项目了,而且也可以直接调试RL的库了,因为编译的lib里面的调试信息已经记录的是我们自己下载的代码的路径了。

以上是关于03_源码编译的主要内容,如果未能解决你的问题,请参考以下文章

Nexus_自己下载编译源码_刷机

[转组第10天] | Android6.0.0_r1源码编译和POC程序的编译

Linux下通过源码编译安装程序

Android源码编译_真机烧写

大数据技术之_03_Hadoop学习_02_入门_Hadoop运行模式+本地运行模式+伪分布式运行模式+完全分布式运行模式(开发重点)+Hadoop编译源码(面试重点)+常见错误及解决方案(示例代(代

Android反编译调试源码