Ubuntu编译安装boost并在eclipse C/C++中使用/Boost安装和卸载
2013-06-14 17:44
716 查看
一、Ubuntu编译安装boost并在eclipse C/C++中使用
source : http://www.linuxidc.com/Linux/2011-04/34790.htm1.从boost官网下载boost 1.46.1
2.执行 apt-get install build-essential
(目的是为了安装好象gcc,g++等一些工具进行编译)
注:我是在root用户下进行的操作,普通用户执行 sudo apt-get install build-essential
3.解压boost库到/usr/share/
將下载好的boost 1.46.1.tar.gz(我用的是这个版本) 复制到/usr/share/ 目录下,然后解压,会自动生成一个boost_1_46_1这个文件夹(或者用命令解压,这里就不提了,可以自己去查解压命令)
4.编译bjam(这个东东是用来编译boost库的)
编译之前先做如下操作,由于这版本是编译msvc版的bjam,我们把它改成gcc版的bjam......
进入boost1.46.1解压目录找到bootstrap.bat 用记事本打开,然后修改:
第13行將call .\build.bat > ..\..\..\bjam.log
改为call .\build.bat gcc > ..\..\..\bjam.log
第33行將set toolset=msvc改为set toolset=gcc
保存退出,然后双击 bootstrap.sh在终端中执行,稍等片刻会在boost_1_46_1中生成bjam
5.编译boost库: 在终端中进入/usr/share/boost_1_46_1目录
在终端中输入 cd /usr/share/boost_1_46_1
然后我在root用户下输入 ./bjam toolset=gcc --layout=tagged --build-type=complete stage 进行完全编译
(普通用户的话执行: sudo[b]./bjam toolset=gcc --layout=tagged --build-type=complete stage
)
经过漫长的等 待,命令执行完毕后,将会生成所有版本的库,并存储在:
/usr/share/boost_1_46_1/stage 下
6.boost 已经编译好了,下面调用boost库
1.在/usr/include/下生成一个boost库的include文件夹连接:
ln -s /usr/share/boos t_1_46_1/boost /usr/include/boost
2.在/usr/lib/ 下生成所有boost编译出的lib库文件的对应连接 切换到stage目录下,执行
find $PWD/lib/*.* -type f -exec ln -s {} /usr/lib/ \;
(普通用户执行: [b]sudo find $PWD/lib/*.* -type f -exec ln -s {} /usr/lib/ \;)
执行完以上操作就算ok了 [/b][/b]
这不是一篇向导,全面的向导请看这里 (http://goo.gl/XcAf)。
这仅是一篇笔记。这里用bjam方式 进行编译。
下载boost。(http://cdnetworks-kr-1.dl.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.bz2)
解压到指定文件夹,我是将它解压到根目录下的一个sourcecode文件夹下。
/home/volnet/sourcecode/boost_1_42_0
启动终端(ctrl+f2,输入“gnome-terminal”)。生成bjam脚本。
./bootstrap.sh --prefix=/home/volnet/sourcecode/boost_install
如果不带--prefix参数的话(推荐 ),默认的路径是/usr/local/include和/usr/local/lib
./bootstrap.sh
使用--help参数可以查看帮助,用-h可以查看简要帮助。
./bootstrap.sh --help
生成脚本bjam,已经存在的脚本将被自动备份。
www.linuxidc.com@Ubuntu:~/sourcecode/boost_1_42_0$ ./bootstrap.sh --prefix=/home/volnet/sourcecode/boost_install/ Building Boost.Jam with toolset gcc... tools/jam/src/bin.linuxx86/bjam Detecting Python version... 2.6 Detecting Python root... /usr Unicode/ICU support for Boost.Regex?... /usr Backing up existing Boost.Build configuration in project-config.jam.4 Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./bjam To adjust configuration, edit 'project-config.jam'. Further information: - Command line help: ./bjam --help - Getting started guide: http://www.boost.org/more/getting_started/unix-variants.html - Boost.Build documentation: http://www.boost.org/boost-build2/doc/html/index.html[/code]二、Boost安装和卸载
今天在Ubuntu下安装了boost,非常简单。参考:www.boost.org/doc/html/bbv2/installation.html
只不过Ubuntu的原因,如果写系统目录,需要用sudo执行:
$./bootstrap.sh
$./bjam
$sudo ./bjam install
如果是需要支持mpi,在执行了./bootstrap.sh后,需要修改文件project-config.jam ,添加
# MPI configuration
using mpi ;
当然,首先保证已经安装了mpich2或openmpi。然后在第2行执行:
$./bjam --with-mpi
参考:http://www.boost.org/doc/libs/1_46_1/doc/html/mpi/getting_started.html#mpi.installation
默认将头文件安装在/usr/local/include,库文件安装在/usr/local/lib
卸载也很简单,直接将以上两个目录中有关boost的内容删除就可以了三、Ubuntu下Boost、BLAS、Lapack及CGAL安装
http://hhfighting.blog.163.com/blog/static/5570032320120932829701/
1,首先安装Boost,下载最新的boost ,解压到某个目录
首先,安装Boost之前,需要做一些准备工作:
安装g++:sudo apt-get install g++
为了更完整的编译boost,需要下载额外的软件包,比如要完整编译boost-python库需要下载python2.6-dev,正则库regex需要 unicode/icu,boost.iostreams库需要zlib1g-dev,相关命令如下琐事:
sudo apt-get install python2.6-dev(根据当前的版本进行选择)
sudo apt-get install libicu-dev
sudo apt-get install libbz2-dev
没安装上述库的出现的错误信息:
运行 ./bootstrap.sh 出现“Unicode/ICU support for Boost.Regex?....not found”,此错误的解决办法就是安装libicu-dev。
接着,要编译生成boost安装工具bjam
进入boost目录执行:(前两句是为相关文件添加执行权限)
chmod +x bootstrap.sh
chmod +x ./tools/build/v2/engine/build.sh
./bootstrap.sh
注意:
如果没有前两句的设置权限,否则会出现如下错误
./bootstrap.sh: 210: ./tools/build/v2/engine/build.sh: Permission denied
Building Boost.Build engine with toolset …
Failed to build Boost.Build build engine
Consult ‘bootstrap.log’ for more details
然后,执行刚生成的
./bjam install --prefix=/usr/local //指定了安装路径
install会安装头文件和库文件到相应指定目录,头文件安装到/usr/local/include下,库文件安装到/usr/local/lib下。具体指定安装目录见 /bjam –help。
此外,也可以使用./bjam stage
stage说起来只能说是收集生成的库文件到一个目录下,通常默认就在./stage下。
注意:若编译过程中未指定install或stage,则生成的目标库文件只存在于–build-dir所指的目录中,默认为./bin.v2。考虑到此,若无需将头文件和库文件安装,则推荐使用stage关键字。
编译开始,大约半小时,全部编译结束。
2,测试boost安装
1)使用不需要编译的库 timer 库
#include <boost/timer.hpp>
#include <iostream>
using namespace boost;
int main()
{
timer t;
std::cout << "boost lib [timer] test code..."<< std::endl;
std::cout << "max timespan:" << t.elapsed_max() / 3600 << "h" << std::endl;
std::cout << "min timespan:" << t.elapsed_min() << "s" << std::endl;
std::cout << "now time elapsed:" << t.elapsed() << "s" << std::endl;
}
g++ -o a.out timer_test.cpp
./a.out
结果如下:
boost lib [timer] test code...
max timespan:0.59652h
min timespan:1e-06s
now time elapsed:0.01s
说明成功使用了boost库函数。
2)使用regex库
#include <boost/regex.hpp>
#include <iostream>
using namespace boost;
int main()
{
std::cout << "boost lib [regex] test code..." << std::endl;
boost::regex reg("//d{3}([a-zA-Z]+).(//d{2}|N/A)//s//1");
}
不加-l参数时编译出错:
g++ -o regex regex_test.cpp
加-l参数时不出错:
g++ -o regex regex_test.cpp -lboost_regex
运行结果:
boost lib [regex] test code...
至此,boost环境就编译测试完毕,以后可以在此环境上学习boost的其它库的用法,进而将他们应用到自己的工作当中,尽量提高工作效率,降低开发成本。
4,安装Lapack
安装lapack最主要的是如何修改 make.inc,具体操 作如下:
先将下载的文件解压缩:tar xvzf lapack-3.4.0.gz
移动文件到制定目录:sudo mv lapack-3.4.0 /usr/local/
安装编译器及相关库文件:sudo apt-get install gfortran
sudo apt-get install libblas-dev
建立make.inc文件: cp make.inc.example make.inc
编辑make.inc文件:gedit make.inc
红色部分为修改部分 ............
FORTRAN = gfortran -fimplicit-none -g
OPTS = -O3 //此参数是编译器的版本 根据机器具体安装的编译器来设置
DRVOPTS = $(OPTS)
NOOPT =
LOADER = gfortran -g
LOADOPTS =
..............
修改makefile文件:gedit Makefile (如果安装了BLAS,此步就不需要进行了)
修改内容如下:(由于事先没有安装BLAS,所以需要对blas进行编译)
原文:
lib: lapacklib tmglib
#lib: blaslib variants lapacklib tmglib
修改为:
#lib: lapacklib tmglib
lib: blaslib variants lapacklib tmglib
编译文件:make
编译出现以下错误:
./lapack_testing.py
make: execvp: ./lapack_testing.py: 权限不够
make: *** [lapack_testing] 错误 127
授予权限:chmod +x lapack_testing.py
然后再make,程序运行正常。
最后,复制liblapack.a 、 librefblas.a、 libtmglib.a三个文件到/usr/lib和/usr/local/lib两个文件夹中。
Now, only generate static library(.a). I want to generate dynamic library(.so), how to do ?
reference: http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=908
4,安装CGAL
(
CGAL,它要求boost要1.39以上)。
cmake-gui . //后面的.代表是当前目录
make
sudo make install
默认头文件装在 usr/local/include/, 库文件装在 usr/local/lib/.
使用CGAL编译代码
复制scripts/cgal_create_cmake_script到你的工程目录并运行
运行下列命令,将地址替换成你当前的工作目录
cmake -DCGAL_DIR=$HOME/CGAL-3.5
然后运行make,即可生成可执行文件
5,软件包的基本结构和安装路径:
安装的软件包, 一般有四部分组成: 头文件, 库文件, 可执行程序,文档。 一般情况下,它们放的位置如下:
/usr/include, /usr/lib, /usr/bin, /usr/share/doc/。 在软件包安装时,一般会自动安装到这些文件夹当中; 但有时候也需要用户自己把头文件、库文件等拷贝到相应的目录下, 或者做一个符号链接也可以。
ln -sf 被链接的目录或文件 链接目录或文件
-s: 符号链接
-f: 硬链接
当然有时会把 软件包放在 /usr/local/ 下(其目录结构和/usr/基本相同), 但要注意 记得将 /usr/local/lib 加入到缺省的共享库搜索路径中,就是在文件 /etc/ld.so.conf 中加入一行:
/usr/local/lib
然后运行
/sbin/ldconfig
6,软件包安装后的常见问题及解决办法:
(1)软件包已经安装,但仍提示找不到库文件。
原因一般有二。 第一, 软件包没有安装在缺省的共享库搜索路径中,系统不能自动找到它。 你可以通过添加缺省搜索路径的办法解决, 也可以通过拷贝,链接 把文件放到系统能够自动找到的地方。 第二, 安装的库文件的名字和你需要的名字不同, 可能是大小写,也可能是因为有额外的版本号, 这时你只需要再做一个新的库文件的符号链接, 链接的名字和你需要的相同即可。
ln -sf
(2)如何尽量快速的软件安装。
首选是在ubuntu的软件库中找,找到后用 sudo apt-get install 进行安装。 比如:
apt-cache search emacs
就搜索了所有含有关键词emacs的软件名称。一大堆。如果要分屏,用
apt-cache search emacs|less
或者用grep更精确地定位 比如
apt-cache search emacs|grep emacs22
当然你也可以通过google, Baidu等来确定你相要的软件包在软件库中的具体名字。
另一个选择是通过google, baidu搜索 deb包, 然后下载下来进行安装。
最后的选择才是通过软件包的网站,下载源码进行编译安装, 安装之前要仔细阅读安装说明, 一般以INSTALL, README等命名的文本文件。
相关文章推荐
- Ubuntu编译安装boost并在eclipse C/C++中使用
- Ubuntu编译安装boost并在eclipse C/C++中使用
- Ubuntu编译安装boost并在eclipse C/C++中使用
- Ubuntu编译安装boost并在eclipse C/C++中使用
- Boost-Ubuntu上编译与安装并在eclipse C/C++中使用
- Ubuntu下安装C/C++开发环境【!!!有更新!!!Ubuntu14.10下使用eclipse搭建C语言开发环境】
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu下安装C/C++开发环境【!!!有更新!!!Ubuntu14.10下使用eclipse搭建C语言开发环境】
- ubuntu下使用eclipse编译C++
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- CentOS6.8下安装使用Eclipse搭建C/C++编译环境
- linux(Ubuntu)下安装Eclipse 使用CDT调试C/C++程序
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu下安装C/C++开发环境【!!!有更新!!!Ubuntu14.10下使用eclipse搭建C语言开发环境】
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境