欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux如何編譯和安裝boost庫

 更新時間:2024年01月11日 16:46:58   作者:this_CAPSLOCK  
這篇文章主要介紹了Linux如何編譯和安裝boost庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1.下載boost安裝包并解壓縮

https://www.boost.org/下載boost的安裝包,以boost_1_58_0.tar.gz為例

下載完成后進(jìn)行解壓縮:

tar zxvf boost_1_58_0.tar.gz

2.設(shè)置編譯器和所選庫

先進(jìn)入解壓縮后的目錄:

cd boost_1_58_0

然后運行bootstrap.sh腳本并設(shè)置相關(guān)參數(shù):

./bootstrap.sh --with-libraries=all --with-toolset=gcc

--with-libraries指定編譯哪些boost庫,all的話就是全部編譯,只想編譯部分庫的話就把庫的名稱寫上,之間用 , 號分隔即可

可指定的庫有以下幾種:

庫名說明
atomic
chrono
context
coroutine
date_time
exception
filesystem
graph圖組件和算法
graph_parallel
iostreams
locale
log
math
mpi用模板實現(xiàn)的元編程框架
program_options
python把C++類和函數(shù)映射到Python之中
random
regex正則表達(dá)式庫
serialization
signals
system
test
thread可移植的C++多線程庫
timer
wave

--with-toolset指定編譯時使用哪種編譯器,Linux下使用gcc即可,如果系統(tǒng)中安裝了多個版本的gcc,在這里可以指定gcc的版本,比如--with-toolset=gcc-4.4

命令執(zhí)行完成后看到顯示如下即為成功:

Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
Detecting Python version... 2.6
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./b2

To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./b2 --help

   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html

   - Boost.Build documentation:
     http://www.boost.org/build/doc/html/index.html

3.編譯boost

執(zhí)行以下命令開始進(jìn)行boost的編譯:

./b2 toolset=gcc

編譯的時間大概要10多分鐘,耐心等待,結(jié)束后會有以下提示:

...failed updating 60 targets...
...skipped 21 targets...
...updated 663 targets...

4.安裝boost

最后執(zhí)行以下命令開始安裝boost:

./b2 install --prefix=/usr

--prefix=/usr用來指定boost的安裝目錄,不加此參數(shù)的話默認(rèn)的頭文件在/usr/local/include/boost目錄下,庫文件在/usr/local/lib/目錄下。

這里把安裝目錄指定為--prefix=/usr則boost會直接安裝到系統(tǒng)頭文件目錄和庫文件目錄下,可以省略配置環(huán)境變量。

安裝完畢后會有以下提示:

...failed updating 60 targets...
...skipped 21 targets...
...updated 11593 targets...

最后需要注意,如果安裝后想馬上使用boost庫進(jìn)行編譯,還需要執(zhí)行一下這個命令:

ldconfig

更新一下系統(tǒng)的動態(tài)鏈接庫

5.boost使用測試

以boost_thread為例,測試剛安裝完的boost庫是否能正確使用,測試代碼如下:

#include <boost/thread/thread.hpp> //包含boost頭文件
#include <iostream>
#include <cstdlib>
using namespace std;

volatile bool isRuning = true;

void func1()
{
    static int cnt1 = 0;
    while(isRuning)
    {
        cout << "func1:" << cnt1++ << endl;
        sleep(1);
    }
}

void func2()
{
    static int cnt2 = 0;
    while(isRuning)
    {
        cout << "\tfunc2:" << cnt2++ << endl;
        sleep(2);
    }
}

int main()
{
    boost::thread thread1(&func1);
    boost::thread thread2(&func2);

    system("read");
    isRuning = false;

    thread2.join();
    thread1.join();
    cout << "exit" << endl;
    return 0;
}

在編譯程序時,需要加入對boost_thread庫的引用:

g++ main.cpp -g -o main -lboost_thread

如果boost庫的安裝位置不是在系統(tǒng)目錄下,則還需要在編譯時加上-I和-L指定boost頭文件和庫文件的位置

編譯成功后運行程序,利用boost實現(xiàn)的多線程任務(wù)正確運行:

func1:  func2:00

func1:1
        func2:1
func1:2
func1:3
        func2:2
func1:4
func1:5
        func2:3
func1:6
func1:7
        func2:4
func1:8
func1:9
        func2:5
func1:10
func1:11
        func2:6
func1:12
func1:13
        func2:7
func1:14
func1:15
        func2:8
func1:16

exit

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決linux下zip文件解壓亂碼問題

    解決linux下zip文件解壓亂碼問題

    本篇文章主要介紹了解決linux下zip文件解壓亂碼問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-05-05
  • Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的步驟詳解

    Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的步驟詳解

    這篇文章主要給大家介紹了在Ubuntu 17.04系統(tǒng)下源碼編譯安裝opencv的相關(guān)資料,文中將一步步的步驟介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 在Linux服務(wù)器下啟動tomcat的三種方式

    在Linux服務(wù)器下啟動tomcat的三種方式

    這篇文章主要介紹了在Linux服務(wù)器下啟動tomcat的三種方式,Linux作為一種穩(wěn)定安全的服務(wù)器一直受到業(yè)界歡迎,那么如何啟動部署在服務(wù)器上的Tomcat呢,這篇文章帶我們來了解
    2023-03-03
  • CentOS(Linux)下的apache服務(wù)器配置與管理方法分享

    CentOS(Linux)下的apache服務(wù)器配置與管理方法分享

    CentOS(Linux)下的apache服務(wù)器配置與管理方法分享,需要的朋友可以參考下。
    2011-04-04
  • Linux系統(tǒng)修改環(huán)境變量的常用方法

    Linux系統(tǒng)修改環(huán)境變量的常用方法

    這篇文章主要給大家介紹了Linux系統(tǒng)修改環(huán)境變量的常用方法,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Linux基礎(chǔ)學(xué)習(xí)之文件查找find的常見用法

    Linux基礎(chǔ)學(xué)習(xí)之文件查找find的常見用法

    這篇文章主要給大家介紹了關(guān)于Linux基礎(chǔ)學(xué)習(xí)之文件查找find的常見用法的相關(guān)資料,例如:根據(jù)文件名查找、根據(jù)正則表達(dá)式查找、根據(jù)路徑查找、根據(jù)文件類型查找以及根據(jù)文件大小等等,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒。
    2017-12-12
  • Xshell連接不上虛擬機的解決辦法匯總

    Xshell連接不上虛擬機的解決辦法匯總

    本文主要介紹了Xshell連接不上虛擬機的解決辦法匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 基于CentOS的Hadoop分布式環(huán)境的搭建開發(fā)

    基于CentOS的Hadoop分布式環(huán)境的搭建開發(fā)

    本篇文章介紹了基于CentOS的Hadoop分布式環(huán)境的搭建開發(fā),有興趣的可以了解一下。
    2016-11-11
  • 在 Ubuntu 16.04 為 Nginx 服務(wù)器安裝 LEMP 環(huán)境(MariaDB,PHP 7 并支持 HTTP 2.0)

    在 Ubuntu 16.04 為 Nginx 服務(wù)器安裝 LEMP 環(huán)境(MariaDB,PHP 7 并支持 HTTP

    LEMP 是個縮寫,代表一組軟件包(L:Linux OS,E:Nginx 網(wǎng)絡(luò)服務(wù)器,M:MySQL/MariaDB 數(shù)據(jù)庫和 P:PHP 服務(wù)端動態(tài)編程語言),它被用來搭建動態(tài)的網(wǎng)絡(luò)應(yīng)用和網(wǎng)頁
    2016-09-09
  • Linux?服務(wù)器上配置基于SSH?密鑰的身份驗證及使用方法

    Linux?服務(wù)器上配置基于SSH?密鑰的身份驗證及使用方法

    SSH是一種加密協(xié)議,用于管理和與服務(wù)器通信,在使用?Linux?服務(wù)器時,您經(jīng)常會花費大量時間在通過?SSH?連接到服務(wù)器的終端會話中,這篇文章主要介紹了Linux?服務(wù)器上配置基于SSH?密鑰的身份驗證及使用方法,需要的朋友可以參考下
    2024-04-04

最新評論