linux boost,boost库下载和安装
大家好,linux boost相信很多的网友都不是很明白,包括boost库下载和安装也是一样,不过没有关系,接下来就来为大家分享关于linux boost和boost库下载和安装的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
怎么在ubuntu上安装boost1.58
安装好ubuntu14.04之后,下载boost、qt、osg的库,进行编译
1.boost
参考
boost提取出来以后,先./configure,生成b2
这里b2好像就是对应1.40以前的bjam,都是boost自己的编译程序。
再执行./b2 link=static runtime-link=static variant=debug,release
layout=versioned stage--stagedir="/home/username/boost_1_58_0/bin/gcc"
threading=multi
这个命令是个大概的格式,具体可能有些拼写符号有误,主要就多说几点。一个是link和runtime-link,link是在编译期间,是选择
static还是shared,如果是static,那么boost库在编译完成后,会绑入输出的程序,如果是shared,那么需要放在代码目录下,供
引用。runtime-link则是在程序发布之后,如果启动运行,调用boost库的方式,如果选择shared,那么不但需要把编译输出的文件给客
户,还要给他一堆依赖的动态链接库。
variant是以什么方式输出,如果既想要debug又想要release,那么就用逗号连接。
但是,如果同时输出debug,release,会产生命名冲突,必须指定layout=versioned,这样debug和release出来的库的名字才不会冲突。
stage编译的话,编译完成后,所有的库文件都会被输入指定的stagedir里面,而include文件本身就在boost_1_58_0下面
的boost文件夹中。不需要再执行make
install,install的作用会把所有生成的库拷入/usr/local/lib里面,/boost_1_58_0/boost也会拷入/usr
/local/include里面,有点多余
但是stage方式编译的话,在每次生成依赖boost库的程序的时候,需要用-I在指定inlucde路径。可以通过在环境变量文件里面指定环境
变量,然后g++编译的时候,指定这个环境变量。关于环境变量参考了这篇:
/article/details/8513365
比如我有一个调用boost库的代码文件hboost.c,在/home/username/.profile文件里面指定了
BOOST_ROOT,重启生效。编译的时候执行 g++-I$BOOST_ROOT hboost.c-o
hboost,就可以输出编译结果,再运行./hboost就可以看到程序运行的结果了。
2.qt
qt其实比较简单,直接进入解压到目录,./congfigure;make;make install三个步骤就可以了。不过由于我要用osg利用qt的库编译osgQT所以这里有个坑。
首先,为什么选择QT4.8,这是因为它是QT5.0以下的最新版。为什么不用QT5呢,因为据osgChina里面的大牛说,好像QT5在osg
里面进行多线程方面有bug。具体参考这些帖子,
amp;tid=13908&highlight=qt5
其次,为了最后能生成osgQT,需要编译QT的GLWidget等相关类,所以需要在本机上安装opengl。开始的时候参考这篇文章
(OpenGL)-on-Linux-Mint.但运行命令的时候总是告诉我
依赖有问题。于是看到有人说需要更新源(
t=468366),就又找到了这篇文章
%A8#Trusty.2814.04.29.E7.89.88.E6.9C.AC。这下就全都妥了。
然后进入qt解压目录,做./configure-static-debug-and-release-no-sql-sqlite
-no-sql-sqlite2-no-sql-sqlite_symbian
-opengl生成静态库。注意,那几个no-sql的选项,如果不带的话,会在下一步make的时候,报
qt_plugin_instance_qsqlite
unresolve之类的错误(
static-problem-under-Linux(ubuntu))。-opengl选项,会让configure自动去默认路径寻找opengl
相关的依赖,如果你的opengl安装的位置不对,他会要求你自己指定其他的位置。
3.osg
osg默认是用cmake来编译的,所以应该先用apt-get把cmake
cmake-gui搞下来。在编译的过程中发现,如果本机的依赖库有问题,有可能会导致编译或者链接失败。一个比较偷懒的办法提供给大家。首先,请先更新
你linux的源,之后apt-get build-dep
openscenegraph,这个命令在我这里下载了几十兆的依赖库。然后进入到osg的解压目录,然后把makefile.txt拖进gui,点击
configure,勾选group、advanced。如果要编译Debug那么先把cmake组里面的参数build
type(似乎是这个选项)写Debug,build组里面的compile
example勾选。然后再点击一次configure,再点generate。理论上依赖库应该是没问题的,因为我们apt-get了那么多依赖库对
吧。
然后终端里make,如果报错,如果报错是和某个依赖库有关的,那么就重新打开cmake-gui,把那个依赖库选项下的include、library全部删掉,再重新生成,然后再重新make。如此反复,最终一定会生成一份可用的osg。
当然也可以不下载依赖库,直接把QT和opengl在默认路径下准备好,如果这样的话其实更简单,直接终端里面运行./configure就行了,
自动会以release方式cmake出makefile,如果想要Debug方式,那就改一下configure文件。然后make,一般不会有问题。
make结束之后,所有生成的文件会位于解压文件夹里的bin、lib、inlcude里,把这些拷贝出来,放到另外一个文件夹比如build,然
后把下载到的data文件夹,里面包括那个牛、滑翔机和卡车等等经典的模型,也放到这个build里面,设置一下环境变量,osg应该就可以用了。
设置有关环境变量的问题,需要设置两个或者三个环境变量。如果在执行完make之后,再执行make
install,那么只需要设置OSG_FILE_PATH指定data文件夹的位置,并在PATH中指定bin文件夹的位置(这样可以运行
osgersion,osgiewer这些编译时附送的应用)。make
install会把include和lib文件夹拷入usr/local下的include、lib文件夹。但是如果没有执行make
install,那么需要设置第三个环境变量,那就是LD_LIBRARY_PATH,我的分发版是ubuntu
14.04,sudo gedit/etc/environment打开配置文件,添加export
LD_LIRARY_PATH=$LD_LIBRARYPATH:path to lib然后在终端里执行source
/etc/environment。这样做是因为在执行osgiewer的时候,如果要读入cow.osg文件,osg需要lib文件夹下的plugIn
文件夹里的插件来读取对应格式的文件。由于我我们没有执行make install所以就需要告诉osg,这个lib文件夹到底在哪里
不得不说,我的osg生成的还是有问题,freetype总是用不了,字体显示上有些蛋疼。后来很仔细的把cmake里面的有关freetype的
地址都指定了,也输出osgdb_freetype.so了,但使用的时候还是出现undefined
symbol错误。先不打算搞了,起码现在主要功能都能用,字体的事先放一放。
networkboost是什么
Network Boot(网络启动)通常设置的是从网络上的某个设备(如TFTP服务器、NFS服务器、PXE服务器等)加载启动文件,而不是从本地硬盘或其他本地媒体启动。具体来说,启动项的设置取决于网络启动环境和所使用的技术。
网络启动(Network Boot)是一种技术,它允许计算机从网络上的远程服务器加载操作系统,而不是从本地硬盘或其他媒体启动。这种技术通常用于无盘工作站、瘦客户机、虚拟机以及需要集中管理和部署操作系统的环境。
在网络启动过程中,计算机首先通过网络接口卡(NIC)发送一个请求,要求从网络上的某个设备加载启动文件。这个设备可以是一个TFTP服务器、NFS服务器或支持PXE(Preboot eXecution Environment)的服务器。启动文件通常是一个引导加载程序(bootloader),它会进一步加载操作系统内核和其他必要的系统文件。
例如,在一个使用PXE技术的网络启动环境中,计算机的BIOS或UEFI固件会检测到一个支持PXE的网络接口卡,并通过它从PXE服务器上加载一个引导加载程序。这个引导加载程序可以是一个定制的Linux内核或一个用于进一步加载其他操作系统的程序。一旦引导加载程序被加载到计算机内存中,它就会接管计算机的启动过程,并从网络上加载操作系统。
因此,在设置网络启动时,需要配置计算机的BIOS或UEFI固件,以使其能够从网络接口卡启动,并指定要从哪个服务器加载启动文件。这些设置通常可以在计算机的启动菜单或BIOS/UEFI设置界面中找到。具体的设置步骤和选项可能因计算机型号和所使用的网络启动技术而有所不同。
总的来说,网络启动提供了一种灵活和高效的操作系统部署和管理方式,特别是在需要集中管理和维护大量计算机的环境中。通过正确配置网络启动设置,可以轻松地实现操作系统的远程安装、更新和恢复。
Linux系统卸载Boost库的指南linux卸载boost
Linux系统卸载Boost库的指南
Linux系统可以被描述为一个自由开放的操作系统,它被广泛地应用在各个行业,用来完成许多复杂的任务。它不仅拥有大量的开源软件包和组件,还允许用户安装第三方软件包来提高它的性能。其中之一就是Boost库,它是一个提供大量C++库的开源工具,通常用来开发高性能的应用程序。然而,在某些情况下,用户需要卸载Boost库来释放空间,提高系统的性能。本文就来引导大家如何完成这件事情。
第一步:关闭所有应用程序
首先,要在开始卸载Boost库之前,必须先关闭所有正在运行的应用程序。这一步十分重要,因为Boost库可能已经被其他应用程序使用,卸载时可能会破坏系统的稳定性和完整性,甚至导致系统的崩溃。
第二步:删除Boost文件
接下来,请删除Boost库对应的文件。由于Boost是一个C++库,所以它的档案位于”/usr/lib或/usr/local/lib”文件夹中。我们可以使用Linux的rm命令直接删除文件:
例如,如果要删除Boost档案,则可以使用以下命令:
sudo rm/usr/lib/libboost_*
第三步:清理系统文件
清理档案是重新配置Linux系统的关键一步。有了Boost档案,Linux系统也会跟着安装一些对应的支援文件。因此,要卸载Boost库,还需要清理掉一些被残留在系统里的文件,可以使用”rpm-e”命令来完成:
例如,如果要清理安装Boost时产生的残留文件,可以执行以下命令:
sudo rpm-e boost-.rpm//的位置可以看做安装的库的名称
最后,要确保所有的残留文件都已被清理。
第四步:重新启动Linux系统
卸载Boost库的最后一步是重新启动Linux系统。在这一步中,系统会读取安装影响的配置文件,确保Linux系统没有因为删除Boost库而损害,新配置文件中不会再包含Boost库信息。
以上就是Linux系统卸载Boost库的全部步骤。以上步骤只针对Boost,安装其他第三方软件包时,可能会有些不一样。所以,先了解详细信息,然后才可以准确的卸载并重新启动Linux系统。