导航:首页 > 源码编译 > debian下编译和使用boost共享库

debian下编译和使用boost共享库

发布时间:2024-05-31 14:36:45

① 如何在linux上使用boost:thread-C/C++

下载到boost_1_49_0.tar.bz2 (当然,其他压缩格式也可悉磨以)后,可以把它放在用户目录下,即:~/

解压缩:tar -jxvf boost_1_49_0.tar.bz2

这样,出现文件夹:~/boost_1_49_0

然后进入:$ cd boost_1_49_0

你会发现有一.sh命令:bootstrap.sh

运行它:$ ./bootstrap.sh (boost自己的get start文档中说设置参数 --prefix=dir 其中dir为你想指定的安装文件夹,我建议就不用加这个参数,它会默认安装到/usr/local)

结束后出现一个可执行文件: ~/boost_1_49_0/b2

运行这拿手个文件: $ sudo ./b2 install (Ubuntu用户千万别忘了加sudo,不然安装后将无法完全使用)

编译安装时间比较长,根据不同机器的情况20~40分钟。结束后即安装完毕。


#include<boost/thread.hpp>
#include<iostream>

voidtask1(){
//dostuff
std::cout<<"Thisistask1!"<<std::endl;
}

voidtask2(){
//dostuff
std::cout<<"Thisistask2!"<<std::endl;
}

intmain(intargc,char**argv){
usingnamespaceboost;
threadthread_1=thread(task1);
threadthread_2=thread(task2);

//dootherstuff
thread_2.join();
thread_1.join();
return0;
}

编译时的命令为:
$ g++ -I./inlcude -L./lib example.cpp -lboost_thread -o example
编译之后会出现一个 example 的可执行文件,可以运行:./example , 结果睁敏斗显示:
This is task2!
This is task1!

可能你在运行时会出现这样的错误:error while loading shared libraries: libboost_thread.so.1.49.0: cannot open shared object file: No such file or directory

这是因为要用到的库不在默认的环境变量里,可以使用下面的命令添加:
$ sudo ldconfig /usr/local/lib

添加后,再执行./example,这样你就完成了你的第一个boost::thread程序。

② RockPI 4A Linux内核下载与编译

本文介绍RockPI 4A单板Debian系统Linux内核的下载和编译方法,为后续介绍RockPI 4A单板Linux内核调试进行抛砖引玉。

一笑神腔、代码下载

Rockpi 4A Debian版本SDK代码下载方法:

代码下载完成后,显示如下瞎册:

kernel 目录下保存Linux内核代码。

build 目录下保存配置和编译脚本。

如果RockPI 4A代码下载失败,提示如下:

解决方法:将下载链接中 https 替换成 git 。

二、内核编译

使用代码里的编译脚本,编译脚本名称: mk-kernel.sh ,位置如下:

注:在脚本 mk-kernel.sh 中有一段代码: source $LOCALPATH/build/board_configs.sh $BOARD ,使用脚本编译时,必须在 build 文件夹同一级目录。

RockPI 4A Linux内核编译方法碰衫如下(使用...省略部分编译输出):

其中: rockpi4a 对应RockPI 4A单板,如果使用其它单板,需要设置不同内容。单板类型可参考 build/board_configs.sh 脚本中 case ${BOARD} in 的选项。例:

编译出来的映像路径:

③ boost 库1.36无法编译。

为了楼主的问题我是跋山涉水,翻山越岭啊 跑国外去down了这个东东

我发现我编译是没有问题的 在编译bat里面我发现 它会检测你现在装的编译器环境是那个 例如

setlocal & endlocal
if EXIST "%ProgramFiles%\Microsoft Visual C++\VC98\bin\VCVARS32.BAT" (
set "BOOST_JAM_TOOLSET=msvc"
set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual C++\VC98\"
goto :eof)

如果你有错误说明环境变量有问题 建议你查下你的vc装的有没有问题
Microsoft Visual C++ 6.0,可在工具→选择→目录处把Boost的路径(如前面的boost_1_26_0)添加到Include Files搜索路径中。

boost 貌似是很强大的 以前没怎么注意过 楼主会用介绍下喽
good luck

刚才看了下 果然很强大哦 谢谢楼主带领我到boost的世界 哈

④ boost源码如何应用

下载Boost库,这里我选择下载boost_1_55_0.zip
解压boost文件到本地目录(如G:\boost_1_55_0),可以发现解压后的文件中有一个bootstrap.bat文件。
然后以管理员身份打开cmd窗口,

上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件
在命令窗口中输入语句:bjam.exe
此过程将默认根据系统已经安装好的编译工具(VS2008,2010,2012,2013)等编译相应的Lib文件、头文件等。(此步骤大概需要10分钟)
可以看到msvc 12.0,这是因为我系统中已经安装过了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013

第5步执行成功后会有如下信息提示
至此我们已经完成了boost库的安装,下面需要配置一下VS2013了。新建一个VS2013控制台应用程序(工程名为boostest),添加如下代码
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
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 << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目录和库目录
包含目录添加 G:\boost_1_55_0
库目录添加 G:\boost_1_55_0\stage\lib

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

阅读全文

与debian下编译和使用boost共享库相关的资料

热点内容
linux打开多个终端 浏览:498
linux中的命令 浏览:573
优化小米6相机算法 浏览:256
ak47pdf 浏览:141
人与文化pdf 浏览:640
原子币app在哪里注册的 浏览:529
php数组保存文件 浏览:226
无理的命令 浏览:510
问道手游解压失败是什么原因 浏览:776
mysql命令提示 浏览:373
apachephp中文乱码 浏览:342
pythonimportpylab 浏览:238
阿里云app服务器价格表 浏览:981
appstore怎么抢手机 浏览:845
打印服务器是什么打印队列 浏览:359
网上怎么用app办理营业执照 浏览:861
sql如何查看服务器地址 浏览:779
编译速度和系统有关吗 浏览:59
复盛制冷压缩机 浏览:983
云服务器共享手机流量 浏览:843