gtsam安装要boostma

gtsam安装要boostma,第1张

您好,要安装GTSAM,您需要安装Boost库。Boost库是一个开源的C++库,它提供了许多有用的数据结构和算法,例如容器,字符串,线程,日期和时间,正则表达式,算法,数学函数等。Boost库的最新版本是1720,您可以从官方网站下载并安装。安装Boost库需要花费一定的时间,但是它可以提供您更多的功能,并且可以提高您的程序的性能。

1、查看boost编译是否已经生成boost_python-vc120-mt-gd-1_58lib。注意python与boost是32位或64位版本,版本要对应。

2、vc环境加入相应的目录

我之前因为boost编译是的64位,而python是32位的,造成链接失败。可以使用dumpbin /headers xxxdll检查是32位还是64位。

仅供参考。

64位windows平台,编译环境是VS2005,进入Visual Studio 2005 x64 Win64 Command Prompt(单纯的cmd也不一定不行,我没试)。把bjamexe放在boost根目录下,进入根目录,执行:

bjam --toolset=msvc address-model=64 --with-thread stage

bjam --toolset=msvc address-model=64 --with-date_time stage

关键选项:“address-model=64 ”

64位Linux平台,使用gcc编译。进入boost根目录,执行:

/bjam --toolset=gcc --with-thread stage

/bjam --toolset=gcc --with-date_time stage

linux平台下倒是简单,不过网上有篇文章介绍用如下命令编译,不知道是多此一举,还是适用于某些情况(非64位linux主机?)。

/bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage

/bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage

唉。命令都很简单,可浪费了我不少时间。usage根本没写,去看boost build的嘛,页数n多不说,看完之后能否找到答案还是未知数。网上相关资料很少而且大多南辕北辙,只好一直搜索+尝试。其实我只是想要个64位版本的库而已,这应该不是啥稀罕的需求吧?

在windows平台下,编译出来的是否是64位类库,只有link 64位程序的时候才能发现。如果不是,link程序无法找到类库中定义的函数或者类。linux不知道,因为我整出来直接就是64位了,我也懒得再找一台32位linux主机折腾了。

在137之后的boost,如果想要使用boost::thread库,必须有boost::date_time库。当然这件事情又一如既往很酷地没有出现在容易看到的地方。而是让你链接错误后再去玩抓虫游戏。

1STL是对基本数据结构算法的实现。BOOST是对STL的扩充,它加入了的智能指针,图 *** 作等等很多的模块。

2这两个库都是在C++标准委员会的指导下制定的。STL包含了常用的算法和集合类型,并采用了泛型的思想来实现。boost是对STL的扩充,是一个功能更加强大,更实用的库。所以作为初学者,还是先掌握STL好,需要写应用性程序时,再研究boost库。

下载Boost库,这里我选择下载boost_1_55_0zip

解压boost文件到本地目录(如G:\boost_1_55_0),可以发现解压后的文件中有一个bootstrapbat文件。

然后以管理员身份打开cmd窗口,

上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjamexe文件

在命令窗口中输入语句:bjamexe

此过程将默认根据系统已经安装好的编译工具(VS2008,2010,2012,2013)等编译相应的Lib文件、头文件等。(此步骤大概需要10分钟)

可以看到msvc 120,这是因为我系统中已经安装过了VS2013

msvc : 80是VS2005

msvc : 100是VS2010

msvc : 120是VS2012、VS2013

第5步执行成功后会有如下信息提示

至此我们已经完成了boost库的安装,下面需要配置一下VS2013了。新建一个VS2013控制台应用程序(工程名为boostest),添加如下代码

#include "stdafxh"

#include <boost/lexical_casthpp>

#include <iostream>

using namespace std;

int main()

{

using boost::lexical_cast;

int a = lexical_cast<int>("123");

double b = lexical_cast<double>("1230123456789");

string s0 = lexical_cast<string>(a);

string s1 = lexical_cast<string>(b);

cout << "number: " << a << " " << b << endl;

cout << "string: " << s0 << " " << s1 << endl;

int c = 0;

try{

c = lexical_cast<int>("abcd");

}

catch (boost::bad_lexical_cast& e){

cout << ewhat() << endl;

}

return 0;

}

添加boostest工程的包含目录和库目录

包含目录添加 G:\boost_1_55_0

库目录添加 G:\boost_1_55_0\stage\lib

进入代码窗口编译并成功运行说明BOOST库确实已经配置成功,可以放心使用。

入门经典:

C++primer

C++程序设计原理与实践

C++编程思想(两卷合订本)

标准参考读物:

《C++程序设计语言(特别版)》

《C++标准程序库》

进阶读物:

《Effective C++中文版

《More Effective C++中文版》

《Effective STL中文版 》

《Exceptional C++ Style中文版 》

《More Exceptional C++中文版 》

《C++沉思录》

《C++语言99个常见编程错误》

《C++编程规范 : 101条规则、准则与最佳实践》

深入专题:

《C++设计新思维》

《深度探索C++对象模型》

《C++ Templates中文版》

《C++语言的设计和演化》

《STL源码剖析》

《设计模式》

《C++模板元编程》

《Boost程序库完全开发指南 : 深入C++“准”标准库》

《Boost程序库探秘 : 深度解析C++准标准库》

其实到了深入专题的阶段,C++已经不再是一门编程语言了,而是一种哲学,帮助你窥探计算机程序设计中最深奥那些角落。

一般情况下,Qt程序使用Boost库崩溃不会导致屏幕刷屏。但是,具体情况可能因为 *** 作系统、硬件设备等因素而有所不同。

如果您的Qt程序在使用Boost库时出现了崩溃,并且同时出现了屏幕刷屏的问题,建议您检查以下几个方面:

1 确认是否存在其他异常:除了Qt程序和Boost库之外,还有没有其他应用或进程也出现异常?这些异常是否与Qt程序和Boost库的崩溃相关?

2 检查硬件设备:如果您的计算机或移动设备存在硬件故障,则可能会导致屏幕闪烁或者黑屏等问题。请检查电脑或手机等硬件设备是否正常工作。

3 检查 *** 作系统设置:某些 *** 作系统设置可能会影响到应用程序运行状态。请检查您的 *** 作系统设置并确认其符合要求。

4 尝试重新安装软件:如果以上方法都不能解决该问题,请尝试重新安装QT和Boost库以解决问题。

总之,在遇到Qt程序使用Boost库崩溃并且同时出现了屏幕刷屏等问题时,请先排除以上几种可能性,并采取相应措施进行处理。如仍然无法解决,请寻求更专业人士帮助分析原因并提供更好地支持。

从左到右。

Boost库提供的单块程序执行顺序是从左到右,即先执行左侧的表达式,再执行右侧的表达式。

Boost库还提供了一些用于自定义表达式计算顺序的机制,如在表达式模板中使用BOOST_PROTO_DEFINE_OPERATORS宏定义 *** 作符的优先级、结合性等属性。

以上就是关于gtsam安装要boostma全部的内容,包括:gtsam安装要boostma、boost.python 库,在 VC 中如何选择、如何编译boost.1.60库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9300045.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存